QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

; \. B# P( c* C. z9 _* t
  1. #!/usr/bin/python8 `) A5 \* R1 X/ k- i( _
  2. # -*- coding: utf-8 -*-! P, s9 V* f/ X* d$ z0 `
  3. \" Y4 b5 F+ w- W7 _4 W
  4. import tkinter as tk
  5. * e6 d7 E1 e' [7 L! mfrom tkinter import filedialog( o  K8 L7 [4 D% L

  6. 8 q6 s, J2 S$ P( L3 qimport requests
  7. 9 }) B0 v6 N0 ?, S& Y9 l0 Gfrom urllib3 import encode_multipart_formdata
  8. + Z\" l% K4 E, i+ ~( N  R7 X& c6 u$ r1 b: j0 U
  9. from os.path import basename+ i; i6 ?4 Y- g9 |\" f$ ?

  10. 8 |4 @, S: j7 V$ E8 ~& Qfrom PIL import Image% H3 f\" o3 T$ H6 f9 x% {

  11. 2 N# ~3 t% K& O, m, m! s\" p* Z8 h# j+ X- N+ ~' \* {
  12. def getmidstring(html, start_str, end):
  13. ; S. h9 G/ s* a1 C) T\" E    start = html.find(start_str): Q& s# j% I- p# t\" y3 e: p/ i& @
  14.     if start >= 0:) k) t. I% N$ _) N$ F  }5 u
  15.         start += len(start_str)
  16. ' g8 m+ a4 s) G: ~        end = html.find(end, start)5 v5 F0 v  k5 @, W
  17.         if end >= 0:! g7 M\" J, ]* s, _
  18.             return html[start:end].strip()
  19. \" v3 p/ Y$ n: X8 @. h; z' X6 e* n+ R& b! [0 r  P
  20. $ b9 Y  P/ b5 ?% j) {
  21. def getTextLeft(html, end):4 x5 y% l9 {8 c% W. Y
  22.     start = html.find(end)' H+ B9 Z6 G9 O' z. X
  23.     if start >= 0:  x: P) ?+ y! [6 I3 `) y& }
  24.         return html[0:start].strip()0 X# |  X' o0 }$ [
  25. 9 Q+ C: Q% y* z9 W  M7 E0 @
  26. , I+ i5 a6 `0 a- I( w
  27. root = tk.Tk(); v4 p) z( i+ g  q5 p: j3 O: W
  28. root.withdraw()\" F+ _\" [/ F* B6 @/ P0 ?2 _+ Q

  29. . L% K5 F( Q4 X/ ^% F9 ?filetypes = [(- n& e* T( t4 r/ x& Q9 k* _% }
  30.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  31. 7 P) n+ y; H9 J( A& ?! bfile_paths = filedialog.askopenfilenames(filetypes=filetypes); a) K7 k( k8 M3 r8 O! `

  32. 3 z/ A6 n6 k- j! V* a! ]for file_path in file_paths:/ O$ G  U. J$ t5 i) M
  33.     print(file_path)
  34. + ^& }* ?; ?  r6 s( ]/ z) {5 [. j4 s4 X9 C
  35.     im = Image.open(file_path)* l0 X2 h! a# ^3 t6 E3 t* m2 S  o; Y
  36.     print("image/" + im.format.lower())
  37. : G% _# i4 L- v$ h; x) w, `& @( L% M1 V/ @& G% a
  38.     with open(file_path, mode="rb") as f:
  39. , b5 s. ^1 _5 h( J6 N6 i- n        file = {7 n, n4 \9 h3 G. Q+ X
  40.             "flag": "1",
  41. ! S+ {& M2 O) I            "pic_path": (basename(file_path), f.read()),
  42. 5 X% I2 f7 s) \! X        }2 K' a* _' f- Z7 L2 I' |+ d
  43.         encode_data = encode_multipart_formdata(file)
  44. - R6 m. {8 B, e' T0 Q: C  T$ n
  45. 3 j4 x. M- p8 v; y\" [( Z\" z  v        file_data = encode_data[0]
  46. % C4 E3 z. _; T3 d, \, F0 C* l2 ?* x8 m2 Y6 x! {7 Y( R
  47.         print(encode_data[1])* j$ ~$ Y5 {! X/ l, n$ ^- Q
  48. 6 f5 a) x6 E; F9 ?$ b, t& U
  49.     url = "http://pic.sogou.com/ris_upload"3 `+ H$ J% \- t1 h! y% s1 |
  50.     headers_from_data = {
  51. 5 h\" [8 b! r' J2 m        "Content-Type": encode_data[1]
  52. \" A5 s# N5 l0 i4 V' ^8 R- L    }% a! N# I! I( j5 S, _
  53.     response = requests.post(\" z$ @5 s. i6 n
  54.         url=url,
  55. 5 O* j& m$ B7 T        headers=headers_from_data,! l4 o, D% f  e, H! d
  56.         data=file_data,
  57. , j' Q\" X; M4 c8 b* Y        allow_redirects=False)9 ^' J( k7 u$ C  b( r( A/ w# x
  58.     response_text = response.text+ I; I. D; Q\" F( ?+ g+ d( A
  59.     start = response_text.find("<a href=\"")* U0 f\" H+ [, E! t' T\" s
  60.     start = getmidstring(response_text, "<a href=\"", "\">")
  61.   i- o* T& C0 I  a' p    print("相似图片:" + start)* S* G$ S8 c/ u. \

  62. 8 {  D& }; F4 S( ?6 k! B    start = getTextLeft(start, "&oname=")
  63. 1 q( ]+ F. E8 D/ l* _3 x    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result". V\" R  H, P7 }  E

  64. 3 W8 Q2 S: T% t' i. c7 ^. ^; M/ {    start = requests.get(start).json()
  65. $ j1 {9 K. b  {' q' y    print("上传的图片:" + start['query'])
  66.   [6 c( [3 z# t$ l4 T
' b/ v, n- Z1 P2 P& q  h; x

' f# T! L. e* ~% L- d* A转发自派生社区
- b. B8 f' h& G4 u0 C* y6 q
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, 2025-8-19 14:25 , Processed in 0.380062 second(s), 49 queries .

回顶部