QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |正序浏览
|招呼Ta 关注Ta
. B8 ?* H0 r9 w+ d
  1. #!/usr/bin/python
  2. 6 L0 K9 D! ^' y- S* @# V* o# Y# -*- coding: utf-8 -*-
  3. 0 v0 T1 f, N\" @( G% p* D/ W6 t( X: z6 v0 O7 ?* j8 @; b
  4. import tkinter as tk
  5. $ p$ d- y4 z. v; w2 h3 g! ifrom tkinter import filedialog2 T8 s- k  @# ^: Z8 N* O- I

  6. \" t4 Q+ `( R4 t\" U* i/ Nimport requests  h* m' V% |2 G, r7 T
  7. from urllib3 import encode_multipart_formdata
  8.   e. e! G  C, p) X. N* i8 d4 P
  9. 2 t\" I, s) e. \0 v2 J( Afrom os.path import basename8 [* t  \( {( F! M\" W
  10. 1 Z; g7 e) Z\" h* b$ p\" r2 l( G
  11. from PIL import Image
  12. 3 c7 Q\" _$ H' m: {2 t% E
  13. 1 {. i7 J9 k3 G5 v( E1 C( Z% `# Q$ X7 F8 Y$ P- ]/ B8 j) q/ w' K
  14. def getmidstring(html, start_str, end):
  15. 3 j# c! n9 n2 v: c8 D: A    start = html.find(start_str)/ g4 z' R) a' \\" h
  16.     if start >= 0:
  17. 9 q5 ?$ q8 T' K0 W. G        start += len(start_str)
  18. 3 F# j5 A3 s. ~8 d7 w\" z8 M        end = html.find(end, start)5 Z3 ]% K4 I( [: q# l\" z% Q
  19.         if end >= 0:2 f* b/ \8 r3 _6 R& I2 H0 q
  20.             return html[start:end].strip()
  21. \" {+ [\" F  l( @* z
  22. / ?$ o% H1 |1 n1 v  r  @1 w
  23. 1 q' [5 x) {* v' r  R6 ~def getTextLeft(html, end):
  24. 8 y; @( U* f! V* W\" f' d/ X    start = html.find(end)- d$ \! ]8 b  z. _
  25.     if start >= 0:
  26. 8 t5 u3 E* Z: r( Z1 ]2 n0 Z        return html[0:start].strip()7 b& q! p' `\" A2 Z/ b4 m
  27. 1 V, \- s7 ~! J, i0 s

  28. 3 H5 B5 H9 C. W. w2 H3 P2 x- S: Iroot = tk.Tk()( b% C# {2 ]7 i+ B: Q& g
  29. root.withdraw()# B, N1 U4 e) g( ?5 j1 W\" s9 ]

  30. ; e) Z$ `$ r8 V: j4 nfiletypes = [(
  31. % ?- R! a# s7 J    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]4 l5 ^- N; A; K- @' M: A3 r, K; Y
  32. file_paths = filedialog.askopenfilenames(filetypes=filetypes)
  33. 8 J/ l6 j6 e5 j5 }; Z# I7 P3 X' M# x  ^: {+ c$ T\" q+ R
  34. for file_path in file_paths:
  35. 5 m3 l0 P6 [. P6 H0 ^# o: Z    print(file_path)) Q8 X  Q/ G1 r  F) E; G

  36. 8 r  n/ f4 |+ l/ N) i    im = Image.open(file_path)  l2 k4 d$ ^$ e% m) U
  37.     print("image/" + im.format.lower())\" j/ @+ T6 f: |- K0 p) `9 q$ I. F
  38. 5 |/ I\" h% ]/ I8 f# f) d) k
  39.     with open(file_path, mode="rb") as f:
  40. 9 V2 F! z4 o& }3 p4 j# f: Y; T        file = {) V! y\" \( F8 L4 z( e
  41.             "flag": "1",
  42. ) j$ S# U9 ~% u& [/ P3 e% n/ Z8 l' g            "pic_path": (basename(file_path), f.read()),! t5 o& }' W0 v0 X; I9 h3 P
  43.         }
  44. % ]- l, p* F! p0 P  Y        encode_data = encode_multipart_formdata(file), u! P- G# K' L# f/ D
  45. & \6 k4 R, x* |) Y( {# W
  46.         file_data = encode_data[0]
  47. + b# B, a% r7 |5 K. E
  48. 1 j# `$ F' t' Z+ ^$ W& S% [        print(encode_data[1])) q3 u. [: U( R4 \4 p+ u* t3 C  G

  49. % b6 t6 @/ T8 o5 ^* z    url = "http://pic.sogou.com/ris_upload"4 g9 m# W  }1 S; @
  50.     headers_from_data = {
  51. # @6 p. m; j7 c# f4 t1 [+ U        "Content-Type": encode_data[1]
  52. 8 U6 D  i; n+ _    }( C, s4 G1 ]( D* f6 e- `  N
  53.     response = requests.post(
  54. * c0 v+ A, T\" K4 c        url=url,
  55. # m3 g+ \% m7 k! I' p1 d- j* m        headers=headers_from_data,
  56. 7 L' F- U2 v2 ^! ?. Y' j% X        data=file_data,
  57. 9 {/ a/ Z' a6 Q2 B* _% L        allow_redirects=False)9 R$ \& Y  g2 q- G5 f
  58.     response_text = response.text) G, N; H; A7 y+ P* c5 f7 c& F
  59.     start = response_text.find("<a href=\"")* d\" E5 w5 H1 i$ q
  60.     start = getmidstring(response_text, "<a href=\"", "\">")0 X' N: D5 D( T
  61.     print("相似图片:" + start)- C+ H9 j. c  z) C3 B/ \- |

  62. , I% F+ M: V0 [' e) }    start = getTextLeft(start, "&oname=")
  63. # n  p; ], R0 F8 M    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  64. % C5 z5 y0 J: ~) n9 n  {3 v& ^, b1 \, h$ N1 M% b$ s
  65.     start = requests.get(start).json()
  66. $ M% E3 f8 }& E' Z$ `\" \, a    print("上传的图片:" + start['query'])% V( t9 s1 c$ {& h* [

$ q) t& r. R9 l# O2 X
7 `5 |* n6 v1 P, C- h转发自派生社区4 r. k* A) R( D# |, Y* j0 S
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-9-2 15:19 , Processed in 0.328152 second(s), 51 queries .

回顶部