QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

* d) K8 g0 m$ v4 G$ }7 }" U6 y
  1. #!/usr/bin/python- N7 C. V4 q2 t1 L5 o! f
  2. # -*- coding: utf-8 -*-\" ]/ A. k  t7 H$ q; i

  3. - {# W5 V  H' `0 Z0 i% zimport tkinter as tk\" R& ~, P4 w% W% _$ Y! |
  4. from tkinter import filedialog; ~7 ^1 D& e' P) y' b3 R( P4 a
  5. 5 Z7 @) {! T! |  X& }  l+ a& c) ~
  6. import requests
  7. $ K1 r. [! I& c# z- cfrom urllib3 import encode_multipart_formdata
  8. ) M* q$ p4 _\" `6 j2 r; r9 A/ j
  9. 7 D8 L% r6 I  |* O# T8 ffrom os.path import basename
  10. / [. ^1 p% o8 u4 ~) r! V\" J: N2 z4 w
  11. from PIL import Image
  12. ) k) F7 Z2 ?! n, P5 `; q: h& P& S
  13. ( P\" M, u+ j3 Y% `1 I) `3 q
  14. 8 S8 D8 {# L* i* A) x\" m: ?' ^def getmidstring(html, start_str, end):  c$ \3 A' N1 V8 T! ~7 ^3 g
  15.     start = html.find(start_str)
  16. 6 o( J- z  X$ `4 x( d. b& V5 _- I. }; _5 P0 a    if start >= 0:
  17. - {! e$ r) I9 [& r        start += len(start_str)$ R  z\" I) B: f& Y! b0 q
  18.         end = html.find(end, start)
  19. 2 n+ U5 u* B, G( }: n3 u; g, L        if end >= 0:
  20. ( r5 R9 L! v  Z1 _            return html[start:end].strip()
  21. \" p) p\" _. }5 g7 A0 L+ s' s9 V. y  T
  22. 4 N: n. E+ e6 \( ], E\" t  R- b4 M/ X' ^) b5 d
  23. def getTextLeft(html, end):( k. _1 E+ {* D. v+ M4 ^! ~- O
  24.     start = html.find(end)- T/ p! h- P: b! M1 @
  25.     if start >= 0:0 I4 n4 s4 N4 ?  ^( D- f
  26.         return html[0:start].strip()
  27. \" C* ]0 E% F4 G0 r; J0 E\" e\" f% F7 N8 A# U

  28. 0 i. z$ ~' T  r, {; qroot = tk.Tk()  U4 z3 n! }0 @  h% O) c
  29. root.withdraw()\" B- {6 {- t8 O# d2 K/ y

  30. , W7 A2 }% ]/ t! Q' Qfiletypes = [(
  31. ! U6 f  c$ _6 A    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')], z/ g9 `2 M' y9 j# w
  32. file_paths = filedialog.askopenfilenames(filetypes=filetypes)5 D8 r& c7 q/ l/ Q: d
  33. . O& ~6 k& d2 F
  34. for file_path in file_paths:
  35. * q1 `8 j5 z$ _, X- W0 L6 t    print(file_path)
  36. : M. y5 u1 ]% m3 t# _. F  }! g) z4 o8 K\" \4 a  @: D% r\" x/ ^
  37.     im = Image.open(file_path)
  38. % U& W3 t) d( j8 u    print("image/" + im.format.lower())  d5 z, J: j/ ^6 A
  39. 5 @# j' H/ i$ r7 \) H3 L. d
  40.     with open(file_path, mode="rb") as f:
  41. * D( @' g& D. Q        file = {1 ?1 b( H\" ?: W5 j; m1 j* V
  42.             "flag": "1",
  43. % g# n8 y6 s7 m. I7 G            "pic_path": (basename(file_path), f.read()),4 S8 r7 R. B, Z9 z
  44.         }9 ?, G. K1 u6 i0 p
  45.         encode_data = encode_multipart_formdata(file)% N' G8 g, o# p+ d: o; j\" v, o
  46. . C- W% `+ ^9 T\" ]\" n
  47.         file_data = encode_data[0]
  48. : i) ~\" Z% m* H* {
  49. / z( K/ j. N  V  R* z        print(encode_data[1]): d9 ~6 x6 ^$ t+ j' [& B7 x/ L; r\" `, d
  50. 0 T; t& B) ]. _: r3 n: @: P
  51.     url = "http://pic.sogou.com/ris_upload"
  52. , R- Z' o# e- h& ^) F: f    headers_from_data = {6 z+ m# |/ _# `
  53.         "Content-Type": encode_data[1]
  54. ; Q- ]  C/ @/ D, D\" n, r6 Q$ v    }7 e* f$ C  o# S  _% V\" T5 v+ x
  55.     response = requests.post(3 L, S+ \: p% U\" g\" z9 o2 u
  56.         url=url,) O/ G+ J) _) ]* D5 {
  57.         headers=headers_from_data,
  58. \" ^* e& Q+ x4 N, S! Q        data=file_data,4 O$ m0 J. L  K1 O
  59.         allow_redirects=False)/ S. V/ B5 l% [% l- u
  60.     response_text = response.text
  61. / E% N2 T5 e  q, Z+ u    start = response_text.find("<a href=\"")0 w, G$ y6 X- R3 E% }/ P5 J
  62.     start = getmidstring(response_text, "<a href=\"", "\">")
  63. % F( A1 N. ?6 r6 Q; {+ e6 B/ o. i    print("相似图片:" + start)
  64. 0 \( _  J/ D; O) x7 m% L
  65. % O0 Q\" c2 n( ]7 {: z+ m7 n    start = getTextLeft(start, "&oname=")
  66. , Z3 _( Q% T8 [) L! j7 J* g  S2 L5 Y    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"+ d  {) y5 l7 Y+ [
  67. % k\" N1 V5 f0 c' q3 D! T' @
  68.     start = requests.get(start).json()( Z% s' K4 I  J3 Q, k! N& i- v2 H# L3 z! `
  69.     print("上传的图片:" + start['query'])3 q8 A2 C, A3 i2 L

) P1 b+ V7 b" O$ y" Z2 I. E: x! j0 E* c; K) d. J+ Y- R0 d9 c7 V
转发自派生社区: S/ x9 m6 k* O5 T# i/ p
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 08:39 , Processed in 0.272893 second(s), 50 queries .

回顶部