QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
' H# ?! G  A+ M9 M; `: N
  1. #!/usr/bin/python9 m6 ^9 |4 H; c( o* ]
  2. # -*- coding: utf-8 -*-2 \* J# c% {* S9 c$ ?' g  F( @7 b

  3. 6 h5 S+ k* a: a& T7 P0 e* timport tkinter as tk- ^! N. A3 B/ M9 e
  4. from tkinter import filedialog
  5. ; K, P/ Q  k' c: m4 k/ c/ P+ Y
  6. 1 S: z, _: Y9 m5 l# i4 u, x# h( J  w* t9 zimport requests! E3 D0 U# P+ p5 n. Q
  7. from urllib3 import encode_multipart_formdata
  8. : i5 z- ^( a9 |7 J' ]7 X; P4 T$ ~. |' u3 D5 n
  9. from os.path import basename
  10. # s) H* r* @# @9 m- v0 U, b
  11. ! n3 @8 `& w' E' t3 e! p8 V5 Ufrom PIL import Image0 T\" _' a4 E: N8 {, ?3 H4 M% k. |

  12. 0 x9 O. T\" }- c% [* Y0 V$ `, m, s, P4 H% h7 W9 s! h& K& a\" L5 w
  13. def getmidstring(html, start_str, end):
  14. 7 J0 m6 ]( Q4 X# H( I5 R    start = html.find(start_str)
  15. ! ?9 s! d$ a9 j\" B7 N- N% j    if start >= 0:* V( `, b5 U: e
  16.         start += len(start_str)
  17. ' P' d# K\" ^2 U, @        end = html.find(end, start)* P, B; a6 z) @! L5 ]1 M
  18.         if end >= 0:
  19. ( b+ {. R3 V3 M+ E2 S: p$ Z3 B            return html[start:end].strip()5 _. p! c  X1 P8 q4 r

  20.   I1 u5 e7 U5 @9 ^0 b! W
  21. 5 n+ z! R+ c3 udef getTextLeft(html, end):
  22. , b. a; N\" d. Z4 m9 X    start = html.find(end)1 h  Z\" B6 C. K1 B1 Z4 I6 m9 ~
  23.     if start >= 0:  H+ b6 F\" p& D+ m# L6 m
  24.         return html[0:start].strip()+ j# M9 i; N: f1 ~

  25. & m7 P0 W% K) z
  26. 7 \9 z5 E& d7 Z! R( {- f4 Sroot = tk.Tk()
  27. + {. V$ e4 {8 C  j* y4 S2 Hroot.withdraw()
  28. ( G% A+ k! d7 c2 d
  29. 6 F4 z0 E5 E4 }0 x/ q/ l4 V! h$ P* u, ofiletypes = [(
  30. ( a% z3 _  T6 c* @    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  31. : A& v, l\" m% t/ {* Kfile_paths = filedialog.askopenfilenames(filetypes=filetypes)* L( n/ z9 ]5 U% U  m' v
  32. 9 k! h3 v7 E, H; W+ s9 i
  33. for file_path in file_paths:% A' D& z, @) A2 D
  34.     print(file_path): r\" M; l& T1 i# c

  35. 5 R1 c- B3 C& X2 c    im = Image.open(file_path)  C; e& ^. z# ^1 G
  36.     print("image/" + im.format.lower())7 H$ S! Z% V0 X# o
  37. 5 l5 R3 {) F; O$ W' ]
  38.     with open(file_path, mode="rb") as f:
  39. 9 l' \# r& \/ I2 H$ ?* l        file = {' w# V6 D& u/ m2 ~6 f! [- P) ~
  40.             "flag": "1",& E( b, v7 v8 |
  41.             "pic_path": (basename(file_path), f.read()),* s+ j7 i2 |\" @
  42.         }! d! U; c\" ?\" Q7 n7 v) h
  43.         encode_data = encode_multipart_formdata(file)
  44. 8 C. ^\" _& M9 d. V) w/ ?* V& a) t7 K' g* Y) m& ^. N* x8 O' y
  45.         file_data = encode_data[0]6 p$ c3 L2 I\" d' v3 ~/ K
  46. ) O9 s1 l' c7 c, w& ?! p  W
  47.         print(encode_data[1]), a  F: H4 Y6 a% y0 ?! P
  48. + O! {: K( l: D/ S. a' a+ X1 [
  49.     url = "http://pic.sogou.com/ris_upload"+ U( U7 q) E& ]; s# h$ ]/ A
  50.     headers_from_data = {
  51. ' P4 d3 t: _/ L2 c; z$ ~9 V        "Content-Type": encode_data[1]
  52. \" W3 v0 N7 {3 Q# F6 U$ F    }
  53. 0 w! h1 y; K# {( A    response = requests.post(
  54. 9 [# K7 q7 @9 R$ e4 n. i0 L0 F        url=url,, |- g* I; ~( r7 `
  55.         headers=headers_from_data,
  56. \" L1 Y$ ~, g% J        data=file_data,
  57. ( [, f. B/ n  P\" x9 b* m        allow_redirects=False)- k; |; w- D+ }* C+ t
  58.     response_text = response.text( c9 W7 |. I. @8 {$ [' O
  59.     start = response_text.find("<a href=\"")
  60. 5 x\" E: d( a% V4 a    start = getmidstring(response_text, "<a href=\"", "\">")! @3 k0 N- Z. ^. V5 G3 m' M
  61.     print("相似图片:" + start)+ P5 q; z- C' E9 M; }! j0 ]8 J* w/ F9 v
  62. . a9 z2 |- H! J% q: Q
  63.     start = getTextLeft(start, "&oname=")
  64. ' v) x; Y$ i: y/ V& ^, F$ l/ j    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  65. / S; E1 y7 X! E+ W
  66. 1 S  y* |% ?. {$ `\" {+ m    start = requests.get(start).json()* h$ u# i$ M* H7 M  `6 x
  67.     print("上传的图片:" + start['query'])
  68. 0 `\" i( l$ A\" e4 ~
5 l0 M5 `% @. H1 Z: N1 r
3 w( m$ H; `: l* D
转发自派生社区$ {6 a; `: n$ `  O' J# L
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, 2025-8-28 22:49 , Processed in 0.460082 second(s), 49 queries .

回顶部