QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
- T: \& F( m, D1 Q0 s+ p( I
  1. #!/usr/bin/python, F( h, N* e: E- @8 G
  2. # -*- coding: utf-8 -*-
  3. ( [1 B$ y/ _2 @) ?) ?1 S# Y9 m% y
  4. - w( R0 Q% B$ e' r4 mimport tkinter as tk
  5. 9 p5 Y1 |: G& g8 Kfrom tkinter import filedialog$ u* L\" O# f\" k( J

  6. 5 }( W' n% Z# p# b; f7 J* wimport requests
  7. $ I8 G0 R4 n  S6 a4 @from urllib3 import encode_multipart_formdata
  8. . V& V9 _. I8 }/ }  T\" |6 K# }  h& T& s8 n$ V( _0 @0 l' Q
  9. from os.path import basename% Z6 w7 ]  ]: [! ^
  10. ' W2 ?\" ?, g\" Z\" X# Y, j9 [/ `
  11. from PIL import Image
  12. 6 o8 N5 x: _8 \/ _) t  [* ^) ^2 v# A8 T7 p6 y: P

  13. 7 X9 }1 Q3 o: g2 X; _# r% udef getmidstring(html, start_str, end):: B; L' U$ R1 u, \- W
  14.     start = html.find(start_str)7 q6 k3 D' Q/ M6 W6 W! A
  15.     if start >= 0:
  16. 6 m- G! S8 b# ]6 i: b( M1 ^/ m  x/ Y        start += len(start_str)! w; c* v7 \5 K: [/ m4 n1 q% j+ `
  17.         end = html.find(end, start)7 o. w1 J  I1 k* ~) E
  18.         if end >= 0:\" p( ?2 P$ x/ O
  19.             return html[start:end].strip()/ F3 O/ R. Q% l% }5 C3 L. [- k

  20. + Z3 l( ?; J. D) X0 F; Q
  21. $ o7 }0 I% a. o! i8 d5 hdef getTextLeft(html, end):\" J9 V3 C) w6 _
  22.     start = html.find(end)
  23. . A5 [/ b1 F: J6 Y    if start >= 0:
  24. 5 e5 \. m# U+ m: A9 G& P2 \        return html[0:start].strip()
  25. / R% H8 D5 \\" \  b\" O; A6 Y5 p/ A% c& j8 w/ V+ g0 D
  26. ' ~2 ?1 y/ W$ d4 u3 P6 W$ c5 [
  27. root = tk.Tk()
  28. 5 G  m0 N$ }/ u! K- Nroot.withdraw()
  29. 9 J7 E' N1 Z0 W% h( J  i2 |% q5 s- X# Z% {7 W8 J7 I# j% Q) g
  30. filetypes = [(
  31. ( x& k/ S3 T( I$ P    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]# g! W8 x\" K  {6 @2 c. l5 j* X& K5 ?# f
  32. file_paths = filedialog.askopenfilenames(filetypes=filetypes)\" D+ {9 [6 v8 d

  33. : v8 p5 Q3 J3 z) c1 @for file_path in file_paths:
  34. / N! U( C; R0 t+ B5 f    print(file_path)
  35. . r\" P, p; U1 J; z* j9 x# g# U! R
  36. % T3 F6 ~3 y! e- h; B    im = Image.open(file_path)
  37. % Z\" B7 s( c) y# T  C% X    print("image/" + im.format.lower())0 s5 m- Z9 d+ S+ l: P9 v\" e) ^
  38. $ r: K  ~3 Y8 @0 j! i
  39.     with open(file_path, mode="rb") as f:
  40. ) D% U$ c# O/ r$ `; I& ^        file = {% D# K7 F$ i  f% L+ r6 ?
  41.             "flag": "1",' P3 K5 G3 m& T! t4 D( E9 ~
  42.             "pic_path": (basename(file_path), f.read()),& j2 X, e! v# \6 ~4 ]
  43.         }
  44. 6 @, W/ O4 N3 O2 n% o\" D1 I        encode_data = encode_multipart_formdata(file)
  45. ( G, i, m: @\" Y5 I$ X) k. g: L/ C* @6 l  H; j' ?# @
  46.         file_data = encode_data[0]; G' a: _7 u2 z& J3 |
  47. ( R9 d) Z6 A$ A% @& O  T
  48.         print(encode_data[1])
  49. ' ^- m# \) U, F1 @  {% B+ M$ a3 X( |' T  v
  50.     url = "http://pic.sogou.com/ris_upload"& t7 |7 U, _. G# ?$ f1 m6 @& @7 ^
  51.     headers_from_data = {7 O7 X' j: U7 o5 y' k; J
  52.         "Content-Type": encode_data[1]
  53. . d2 F; J: X# |9 n( B! i, t    }2 u( t0 O% q1 G
  54.     response = requests.post(
  55. ( e% W; O# ]) J! Q        url=url,& z' o. i* e- r6 g; Y8 t
  56.         headers=headers_from_data,
  57. 3 [\" R7 j- Y\" i        data=file_data,
  58. 0 c, i7 F6 w, I\" Y) {7 I( A7 l        allow_redirects=False)
  59. 0 j' O: j# C! s9 t; o+ }& P    response_text = response.text7 e\" a1 I* ~\" t
  60.     start = response_text.find("<a href=\"")
  61. ! {# a5 b$ P) B  f    start = getmidstring(response_text, "<a href=\"", "\">")
  62. ! i6 C  L3 o% R0 R5 [4 z    print("相似图片:" + start); T/ l/ a5 u6 f5 b6 Q9 b
  63. 9 `$ @% ^9 x1 Z% u* M6 s
  64.     start = getTextLeft(start, "&oname=")2 p8 i- O+ Q6 u& z\" }' v
  65.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  66. + R0 k: x3 U' q4 H: O; ?. I5 _$ {0 L8 @5 v
  67. % C- s3 |  _# {) G+ N/ h    start = requests.get(start).json()) z- @. g3 D1 j5 c
  68.     print("上传的图片:" + start['query'])
  69. 6 ^8 g$ ?% J1 n\" v; s5 ]
+ M7 e4 t+ U& J5 |, W- W
' B9 o0 f9 H6 ?
转发自派生社区
) B# o, [, M' o/ O/ r& I9 N
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-20 15:30 , Processed in 0.403648 second(s), 50 queries .

回顶部