QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

7 B0 F3 k% o8 R/ O
  1. #!/usr/bin/python$ d  Q3 N( Q; f2 q2 ]; b: A
  2. # -*- coding: utf-8 -*-
  3. 5 C$ r. {, Q# [3 D2 J- P6 p5 [& k% @. m: T
  4. import tkinter as tk: s\" F9 ]$ y- [6 h- _. \* X
  5. from tkinter import filedialog4 ~' ]+ z0 k+ W

  6. ' Q3 J. `& U. B, \+ }8 A! ]4 b1 l% Jimport requests5 P# i+ i6 E/ w7 f  G
  7. from urllib3 import encode_multipart_formdata
  8. # Z9 m4 b- o( A6 C0 L' A
  9. 7 g$ r9 \+ i2 N' B\" nfrom os.path import basename# [* j! [\" a4 M4 l, Z3 s
  10. + l) _. s\" C$ i
  11. from PIL import Image$ a7 g* c, b8 M7 a$ P: w4 e2 X

  12. 6 I  Y  _) U# Q; ]\" D( ~+ N3 ~8 Y, z4 i. ^
  13. def getmidstring(html, start_str, end):
  14. $ ?2 r4 N4 E, ]- Y- f4 r    start = html.find(start_str)9 [) U2 D9 U! W1 W  h* x9 W# G
  15.     if start >= 0:$ s1 B* g3 Q/ Q9 b4 |: N- I
  16.         start += len(start_str)
  17.   L& P; e) t( p3 z( A6 w+ |, v7 l        end = html.find(end, start)
  18. 5 ?# {- Y* R! g& b6 R. e2 k        if end >= 0:: ?: g- f! y, L- y
  19.             return html[start:end].strip()# X5 w4 i& z' g& n

  20. ) G  n% J7 N5 d0 h8 F3 E\" b
  21. , {& |; J/ C! I3 G8 Adef getTextLeft(html, end):/ K& s6 i\" }; S' N9 P3 l* E% u4 Y
  22.     start = html.find(end)
  23. 1 k* {# n  @& B6 B4 `* k    if start >= 0:
  24.   f2 u3 F8 \, g9 m6 M9 R/ Q        return html[0:start].strip()( `8 z- P: G* m$ i! o
  25. ) o* ?: s( a# w* s0 E
  26. 4 U2 h  x/ g\" q- |6 A
  27. root = tk.Tk()' }. ^$ g' h* L& V\" s
  28. root.withdraw(), u: F3 P8 P, L* A3 b2 t. R, }- p

  29. # S6 E4 u/ y- \0 L2 V7 a! pfiletypes = [(+ z1 c! m5 {8 ?) r9 B1 G3 G
  30.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  31. : o( Y- D8 M  Q0 c6 R( R\" L! Ufile_paths = filedialog.askopenfilenames(filetypes=filetypes)
  32. $ s1 S  X4 l/ q; r$ h& f* r  \: p4 F1 u! N' }
  33. for file_path in file_paths:
  34. 9 p. z\" l; J/ D- [. `\" o+ w    print(file_path)
  35. 4 q, Z$ p9 F5 ?/ W8 R
  36. 3 l0 l, m  F2 `! B5 o0 f- h    im = Image.open(file_path)- x( P5 i- |$ k$ U# p4 {
  37.     print("image/" + im.format.lower())
  38. $ T; u% j; o; Q0 ~+ {
  39. 8 U8 U1 Z* S/ Z5 ?    with open(file_path, mode="rb") as f:! w4 h! |7 y  X
  40.         file = {
  41. / t9 S# ]\" \9 B* b, ~            "flag": "1",
  42. ' u& z1 b' i% T7 k3 r9 n5 H1 D            "pic_path": (basename(file_path), f.read()),; B- B7 Y/ f% f2 M+ P- D
  43.         }\" P# N  `0 ?) [8 L
  44.         encode_data = encode_multipart_formdata(file)6 ~8 _5 u# J2 R# z/ i: V# S
  45. $ e: A9 l  `4 |/ \2 s; |5 v0 `
  46.         file_data = encode_data[0]7 }\" F: N  v) o  q

  47. ) y9 d( O& q6 d        print(encode_data[1])1 e$ \8 @; ?1 A% u  f' O6 P5 c
  48. 2 M$ q/ D  U5 J# N  W5 H! \
  49.     url = "http://pic.sogou.com/ris_upload"
  50. 5 F% ?4 S3 J3 U/ u, M! P    headers_from_data = {
  51. & \; K! H# h) q3 F5 K        "Content-Type": encode_data[1]( C# J4 r  X9 |# f1 X( o8 G
  52.     }
  53. ) G9 |+ l9 \; N( s$ x/ d    response = requests.post(
  54. & k0 I1 @! e% r8 [2 y  O( v        url=url,
  55. % w8 A! g& {+ O/ S: Z. T, f        headers=headers_from_data,
  56. 2 c8 [: z5 ~& _7 Z        data=file_data,
  57. 7 n1 I0 X/ C1 V; O0 a# O6 k7 g# b# g        allow_redirects=False)
  58. ( J) p% _9 y9 S    response_text = response.text
  59. & W; \% E8 L- T  u& Z3 `    start = response_text.find("<a href=\"")3 x: D' z$ y+ J* B$ O\" ]2 s
  60.     start = getmidstring(response_text, "<a href=\"", "\">")  a) e8 y# A8 z9 c
  61.     print("相似图片:" + start)
  62. 7 A9 e\" {. q. |# w0 z5 A6 K5 q; [8 O8 r. _( f' f: a
  63.     start = getTextLeft(start, "&oname=")  G5 ~* [$ z! c% t, a) {# A
  64.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"( J\" x/ O$ d8 G, q1 L

  65. 8 T$ Y1 @$ I  F* z+ M\" X6 t7 Y    start = requests.get(start).json()
  66. . X$ u9 @, F$ N) G! J9 A    print("上传的图片:" + start['query'])% _0 A% u3 w3 T7 K0 @

! Y9 _; S7 s/ K' e8 a
7 f1 u2 j: G) o" s( f  K6 _: N转发自派生社区* K) I- c% y0 C8 X
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-21 14:28 , Processed in 0.456983 second(s), 50 queries .

回顶部