QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3283|回复: 0
打印 上一主题 下一主题

Python-搜狗post上传图片

[复制链接]
字体大小: 正常 放大
檀俾九        

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
) U  ]8 p( i0 }8 _) o" a3 b; B- ]
  1. #!/usr/bin/python6 m$ u5 _, |# h# r
  2. # -*- coding: utf-8 -*-
  3. 1 a( U9 j: j' Y& v; ?, s/ Y  e+ ~! S9 z, b! }1 A: {( C
  4. import tkinter as tk
  5. 7 s) a$ d/ R* x. r\" J* lfrom tkinter import filedialog
  6. + b5 v1 w0 s3 _% O0 `/ m3 d* F, w: A$ b& P9 i7 t3 C
  7. import requests
  8. 9 }7 E: Q& ^: D/ s& F1 \+ [4 Pfrom urllib3 import encode_multipart_formdata/ w4 V+ a6 j3 h1 |5 k
  9. * J0 ~+ \4 E9 W7 T/ x6 ~
  10. from os.path import basename$ f7 W\" {# G+ b: H. n6 u

  11. & x* {; `, D. Y% g2 ofrom PIL import Image5 {' M6 W8 v4 I) a+ {
  12. 0 x. C# `. m2 f3 `1 E
  13. - I! k5 `  O* Y% z
  14. def getmidstring(html, start_str, end):
  15. 5 z1 s7 `) B. t$ b; A, [0 X    start = html.find(start_str)/ u& R1 w, U\" T5 _
  16.     if start >= 0:) G1 q: V  P6 V6 ?
  17.         start += len(start_str)
  18. 0 z4 O7 r0 v- ^, c* M  @8 }        end = html.find(end, start)
  19. , Z+ }  I$ g9 @6 Q( b) x        if end >= 0:
  20. ) }* T+ _9 {% X0 B: S3 l            return html[start:end].strip()9 `# s' P# n: @
  21. : t( v; x, W. \: p
  22. : u\" @% o\" ~1 D\" w8 f
  23. def getTextLeft(html, end):' t, x0 I& ]. H, T- d
  24.     start = html.find(end)
  25. \" n$ f* D\" t2 h( `8 U    if start >= 0:( p9 R, n  Z3 q) Z7 W8 r4 o4 x( `, o
  26.         return html[0:start].strip()
  27. : F2 ~, e( m\" W' {\" _& S; g+ P1 a$ m

  28. % y1 E6 {0 D. }% W$ d\" iroot = tk.Tk()& N* T4 c9 x; |4 Y
  29. root.withdraw()
  30. ! [. W) ]' Y$ _4 a7 a' o9 |3 q
  31.   p' M. Q8 G/ Q' ofiletypes = [(
  32. - U, D+ p0 ~7 q' r9 D# @/ E$ F    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]- d$ c5 M1 ]+ {  U2 |
  33. file_paths = filedialog.askopenfilenames(filetypes=filetypes)/ k: T- q' {7 C7 e( D

  34. $ a, {$ Y1 t/ N# Q7 p* ifor file_path in file_paths:
  35. ; v6 i5 S2 ]# u  K# H( f( P2 t    print(file_path)
  36. ) @: [+ C1 d3 _8 t: }. M6 h
  37. # ]! a+ R1 z7 F! Z; w    im = Image.open(file_path)
  38. & j( R/ G# ]. z( y    print("image/" + im.format.lower())
  39. ! [# ?$ R2 }9 Q: I% H! A\" t& c- p6 h4 F  Z) q6 V\" j7 W% _
  40.     with open(file_path, mode="rb") as f:5 ], H) o) F, V, s6 A& j
  41.         file = {
  42. 8 {& {/ U7 O/ G5 J4 Q; v            "flag": "1",7 \1 K0 `5 f* q2 f. I1 ?' {
  43.             "pic_path": (basename(file_path), f.read()),7 ]3 [$ R! @6 ^1 e
  44.         }
  45. \" X$ t; }& a! Q3 J        encode_data = encode_multipart_formdata(file)4 x9 r& D0 d+ t; C
  46. \" k  }4 {; j( \) `3 E. y. k1 U- N0 y
  47.         file_data = encode_data[0]/ d7 Y0 |, V  @% B4 _& p# A, Q- m\" z
  48. 3 \1 ^- P1 x; s2 Y) L- S  O8 m
  49.         print(encode_data[1])6 K/ N5 L! h1 [6 p( D) r- M9 ~- d
  50. 6 C1 u9 E& i+ b$ B- T
  51.     url = "http://pic.sogou.com/ris_upload"% u  s3 z8 }* l6 k9 ?9 b
  52.     headers_from_data = {
  53. $ O; K) d, V  _. e% ^; B        "Content-Type": encode_data[1]
  54. 2 e6 e+ i' [& B+ E2 h    }
  55. ' m/ F% S& I- x. w\" j3 u2 ?* @7 i    response = requests.post(
  56. \" n  m2 l6 I# E2 Y6 m1 Q4 M        url=url,& y8 |! M; J# ^0 `+ g! j
  57.         headers=headers_from_data,- a' i9 z* H: e4 W\" o  Y  l, J( |
  58.         data=file_data,
  59. / K% X1 p6 n4 m        allow_redirects=False): B! U' R6 b# [+ j# O
  60.     response_text = response.text  ]1 c! c0 u; t* C- P! z
  61.     start = response_text.find("<a href=\"")  r0 w6 R+ a# a2 K$ G# p% Q$ _. Y9 d
  62.     start = getmidstring(response_text, "<a href=\"", "\">")% L; \8 b1 m+ `% n. K
  63.     print("相似图片:" + start)
  64.   ]4 `0 |- v+ l& Q
  65. ' O8 u, j9 K9 W, A$ F1 C$ O    start = getTextLeft(start, "&oname=")* \  g, b  A' r' ]$ Z% y0 t
  66.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"* d8 G7 M; f; D! `8 ]; u4 K

  67. : o* f! J+ }! |1 t    start = requests.get(start).json()3 y\" _+ V. @! A- J* T1 `1 L# y
  68.     print("上传的图片:" + start['query'])# [& b' C8 s: R+ k, `  ]
- M, f( c0 i( C* W0 N3 I. o

: i. n( C7 g2 u转发自派生社区
8 }' Q% k5 C' n/ ^( J
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-4-18 06:57 , Processed in 0.353370 second(s), 49 queries .

回顶部