QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

$ O7 R* x! x+ @6 t0 w2 n9 z* E
  1. #!/usr/bin/python  n' U' h/ B# ?& K( g! }# M* u# J
  2. # -*- coding: utf-8 -*-8 A( E9 v  U% w; d% m2 F  M
  3. 0 Z! U4 s' L\" j6 k1 f
  4. import tkinter as tk
  5. + ?5 E& M* ~( }4 Kfrom tkinter import filedialog  {$ A- V! n$ a5 f- z\" ~

  6. ' {' @0 b! A$ {0 b+ E' Z& `5 Bimport requests+ [+ L# c  D, W- m% q) r
  7. from urllib3 import encode_multipart_formdata
  8. / l4 H( m  j  i/ T0 ], O, \* W8 q0 }# o% R0 j3 [! K, I
  9. from os.path import basename8 G. y& z4 Z* ?8 P

  10. . ]2 S1 v/ y, e* |, ?: M( Z- O( tfrom PIL import Image3 h\" Q. u0 ], T, Z0 i4 J

  11. & f$ f- ^6 ~- B# ]! h$ Z( y! n& }+ b. x  m9 r# E\" h
  12. def getmidstring(html, start_str, end):0 e1 A  U2 x5 V: }
  13.     start = html.find(start_str)
  14. ) Q4 S5 {! I+ _: e    if start >= 0:
  15. * u* {; C$ C6 u& p        start += len(start_str). T) m7 B3 {8 C1 B
  16.         end = html.find(end, start)  o7 Q; B; U0 H) c& k3 m
  17.         if end >= 0:
  18. 1 @  e0 d) i% E% y( C& ]            return html[start:end].strip()
  19. & ^# w7 e; H& x' D) _& Q2 Z/ S* L' P: O$ \

  20. 2 D6 P  X5 @9 n( I2 q9 y, i8 qdef getTextLeft(html, end):% d3 ~! D9 x! l5 U3 }
  21.     start = html.find(end), K/ S9 ~2 ]# [0 b$ b
  22.     if start >= 0:( J4 Z0 k2 h& I
  23.         return html[0:start].strip()
  24. & v) w& O( [  ]0 q( F( r: H& f- \2 B, x! P8 L: P+ P\" _) V' ]4 r7 j

  25. + p% q% y8 E* n' E& broot = tk.Tk()
  26. ! ^7 i( C\" N$ K; Z8 p! l& \\" uroot.withdraw()# N7 c4 d6 \7 |$ [9 {7 C$ Z
  27. * u% }) {- K) ~9 V
  28. filetypes = [(
  29. 0 l$ g. @2 Z9 W3 M$ O    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  30. 4 x+ k7 W; ]4 K; R0 B4 R0 y! Ffile_paths = filedialog.askopenfilenames(filetypes=filetypes)% c\" v8 |# Q0 E: x, c; c+ Q) m

  31. / t5 P3 G7 _! \5 r5 ~; |/ mfor file_path in file_paths:9 S( T- r6 K/ S\" ~# ^
  32.     print(file_path)
  33. . j/ A. s\" g% H5 y0 |0 m: D# Y* i1 p/ P$ i$ r
  34.     im = Image.open(file_path)
  35. \" F* h. q) z6 b5 ~( e( {, f2 A    print("image/" + im.format.lower())
  36. 7 ]) S  a4 G5 N) K& i
  37. ( h( Q1 f\" k- {4 m3 y( T8 R    with open(file_path, mode="rb") as f:3 @6 H( g; u1 c1 X7 f7 i' C
  38.         file = {\" ^: T/ u$ N. h+ Y$ r& q2 `4 _
  39.             "flag": "1",, d) I) ~8 \4 [, h7 V  C
  40.             "pic_path": (basename(file_path), f.read()),. h1 K5 x6 ?8 `$ q7 ~8 `
  41.         }
  42.   A, C1 @6 P- |$ h        encode_data = encode_multipart_formdata(file)\" _* K. X& ^6 v$ |% N
  43. 2 v# ~2 _  [- m1 \2 m( X
  44.         file_data = encode_data[0]- V! a; g6 O) {- A: g6 O2 F
  45. \" _! O% ~6 S/ c1 |; k
  46.         print(encode_data[1])2 y\" E$ s) \5 a
  47. - K' `8 a& v* l\" |6 C+ M4 q
  48.     url = "http://pic.sogou.com/ris_upload"3 Y. m9 L4 K6 k' q7 \+ R
  49.     headers_from_data = {
  50. 5 w/ U$ }% `. ]$ U' A* b        "Content-Type": encode_data[1]
  51. 3 `, ?4 y  k\" X0 `/ G\" G    }& V5 U+ K( C7 _* m
  52.     response = requests.post(: I, s) Z& l; ?( o. c
  53.         url=url,
  54. 5 }0 G$ g: `6 P; |        headers=headers_from_data,
  55. 7 Q- j9 i8 Y2 [        data=file_data,3 a) v( l. f$ X7 \( F5 q
  56.         allow_redirects=False)9 ^* `1 b, K' i8 ~) R
  57.     response_text = response.text
  58. ) z. w$ T. S8 R\" e- o: p8 V* _    start = response_text.find("<a href=\"")1 ^# W! _, T/ A\" v# }\" q
  59.     start = getmidstring(response_text, "<a href=\"", "\">")
  60. 3 p6 S2 n$ S  l7 {\" X* \    print("相似图片:" + start)
  61. 7 R; s) B+ I% F% K. ]! l1 x% r2 E; t
  62.     start = getTextLeft(start, "&oname=")
  63. . }6 q2 V  `- a7 ]& y6 V\" S- G    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  64. 4 I' D. s6 D/ O$ s( H/ J# {  m0 w8 r+ F/ D- B
  65.     start = requests.get(start).json(); t0 q$ C2 Q0 X0 U
  66.     print("上传的图片:" + start['query'])7 Y  M) V  e% k7 D* j2 L
4 G. V. Y! p$ |2 `

1 _9 u/ `: \  o; a转发自派生社区! M) y/ l" l9 m! ^- p; E
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-23 02:27 , Processed in 0.339636 second(s), 49 queries .

回顶部