QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

; o( J6 @2 a6 t1 [
  1. #!/usr/bin/python
  2. , P. [, t+ n# n8 ~6 l$ k0 p# -*- coding: utf-8 -*-
  3. : R  _2 t$ R4 y* s5 q# o+ B; F( q7 B5 c4 q
  4. import tkinter as tk
  5. / Z- I) Z7 J5 Ufrom tkinter import filedialog
  6. 5 k2 e) M+ F\" G) n\" E
  7. 9 Z\" d  q\" Z5 o6 U* d! U% eimport requests
  8. # @# ~1 t3 m' efrom urllib3 import encode_multipart_formdata1 \( |% h8 a; H$ ~. c
  9. , C( R; S: N# V; Q/ h' m) a
  10. from os.path import basename
  11. 5 s) ^! K' Z' |4 a0 v0 b) V- d\" D7 Z! L4 i( Q
  12. from PIL import Image
  13. ' G) w6 C4 I& h3 q# i& Z- O$ u+ \+ i: j& }\" @4 ?( t
  14. ' B% n7 n; y& b& l
  15. def getmidstring(html, start_str, end):9 Z\" O: I5 i2 h/ x6 d
  16.     start = html.find(start_str)
  17. : \# |! s' x( u, m: o    if start >= 0:
  18. $ f* @& ~8 X; g8 {: Y! ]- X7 V        start += len(start_str), Q* j3 S/ O4 U- O( |' [! f
  19.         end = html.find(end, start)
  20. + K+ r6 {( J3 a        if end >= 0:: n, Z% p# j, R, Y  a/ ?7 h; h- p) o
  21.             return html[start:end].strip()3 s\" H4 x& S3 F3 ]

  22. + j5 {  Q) f- Q3 A% ]% m) b# ]) B* S/ d
  23. def getTextLeft(html, end):/ O9 ^\" d) [6 p  u! \; M. N5 C
  24.     start = html.find(end)6 O7 Z9 o) R+ `, a2 c
  25.     if start >= 0:6 `5 Q- X* g* n' K# Z) j
  26.         return html[0:start].strip()
  27. 5 @# Y; ~1 l* J: V
  28. ) k2 u3 T# M/ n6 ~. d5 h; m1 K
  29. ( Z) g+ ~0 o8 L; Z, U2 E. s9 _* Eroot = tk.Tk()
  30. 0 v  A1 H$ }1 e- R5 I' |& W# n+ aroot.withdraw()
  31. 3 B1 j2 `- ?& V0 L% r% d7 x- z# r2 b! ]4 {
  32. filetypes = [(( l0 c1 }- `8 H! n  |% O6 X1 _( z
  33.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  34. 2 i* T; y/ G3 k$ n8 B\" rfile_paths = filedialog.askopenfilenames(filetypes=filetypes); q7 n9 T+ k% u! O& I1 m) V7 q

  35. 1 u' [* f\" r5 s% e: \for file_path in file_paths:0 |3 d  Q' e1 \- }+ _3 a* T
  36.     print(file_path)) f: r9 V6 d4 p+ I
  37. ; v! x5 f$ S+ q6 H
  38.     im = Image.open(file_path)
  39. . K. L8 s( Q$ A& ?+ ^2 f    print("image/" + im.format.lower())$ [& k6 F; X- C, R' k: \$ u
  40. . S4 N  s9 I, }, A
  41.     with open(file_path, mode="rb") as f:# w, p: Y8 Y1 |* o
  42.         file = {
  43. 4 E1 q7 l: I. ^  t\" N7 j$ V2 y            "flag": "1",+ `9 L7 i! N4 t4 Y\" \, V7 T
  44.             "pic_path": (basename(file_path), f.read()),
  45. 8 h- X* _* ~# p  I4 c. R, E, L# a        }
  46. 4 o3 r' k3 w3 j7 @( n+ _9 Z        encode_data = encode_multipart_formdata(file)
  47. % Y% ?, Z0 a, t
  48. / W! p$ W/ v& U7 G. b; @        file_data = encode_data[0]1 g0 P. ?8 u- B2 D

  49. ( r0 O' B# t4 M* K* c% e  G5 ]        print(encode_data[1])0 {; c3 K4 K3 }: y
  50. 3 e/ a\" C, f- `' @0 y3 J$ e& v' I
  51.     url = "http://pic.sogou.com/ris_upload"5 \/ Z$ |! R1 A& d# i
  52.     headers_from_data = {
  53. ' C7 ?+ u' b2 @2 J( L: G+ U        "Content-Type": encode_data[1]
  54. % R7 Q7 L- |' f( ^3 A% ~. i  r    }
  55. \" M, I, J8 C( u6 j* B' T    response = requests.post(% O3 `\" F& ]/ a2 X
  56.         url=url,
  57. 8 }( M3 `# Q! J$ ~5 ^0 j        headers=headers_from_data,
  58. 5 {8 ?0 C2 P9 d; b        data=file_data,' P6 S3 x2 Z- u9 M
  59.         allow_redirects=False)2 g8 k3 c* P2 r4 m& t- H$ r1 x1 m
  60.     response_text = response.text
  61.   N\" j, H. Q- f! K+ T8 o: J    start = response_text.find("<a href=\"")# B' N, B# ~+ m6 ]( t$ b
  62.     start = getmidstring(response_text, "<a href=\"", "\">")
  63. ) D* U- x0 b, N) B0 q7 D/ w; F    print("相似图片:" + start)
  64. 7 M3 a% ^7 Q8 p6 @4 y5 D& E8 ^1 ]4 ~2 t9 m7 |\" ~; t  H5 V0 O0 `1 S
  65.     start = getTextLeft(start, "&oname=")2 ?9 ^$ ~$ C& q7 w+ Q% ^
  66.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  67. / a\" z+ y2 k# Y6 c7 ]
  68. 2 P: w8 F' e' n) o/ W9 @0 I    start = requests.get(start).json()
  69.   B1 G+ T\" b& k8 r\" F3 g5 X    print("上传的图片:" + start['query'])3 I. z6 m. ~0 h\" v
1 X* g7 K( x  e! A$ z/ t
! u- j" M. K3 e9 I3 W% D
转发自派生社区
3 t6 _5 W7 c# j# T6 W
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-7-18 12:33 , Processed in 0.354571 second(s), 51 queries .

回顶部