QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
! _* J  N$ _9 |& O
  1. #!/usr/bin/python
  2. $ R4 |5 f: E5 i# -*- coding: utf-8 -*-
  3. % E* W% r( I/ C$ M' ]9 o- Z% C8 B5 c3 S8 V! ~) {% y. J
  4. import tkinter as tk
  5. 9 f* q- N' O4 e  c2 Rfrom tkinter import filedialog( O7 B* C) ]5 k( d
  6. ) c( L- Y$ U\" q; k+ a: u. B* [4 d- e
  7. import requests
  8. 9 V/ g! x  o' gfrom urllib3 import encode_multipart_formdata; h' R# w9 c0 S0 B4 p* w
  9. : p* ^* Z: ~& r
  10. from os.path import basename
  11. ! p' f2 A# n4 ~( a2 l' [9 N5 l- B- C4 U4 i( o- O\" ?3 ?4 w
  12. from PIL import Image6 t& F8 P& n, g- R0 G

  13. . A' C2 o: N5 S% M. U
  14. 8 a: \4 S3 ~% M9 Ndef getmidstring(html, start_str, end):7 K5 v+ e7 j- S& o  a, f
  15.     start = html.find(start_str)
  16. 7 g7 `% `& L* \# W    if start >= 0:0 b1 j7 L0 k% Z% i, z; K$ x
  17.         start += len(start_str)& o3 j2 t6 t) ?9 Y7 |: y+ s- n7 {
  18.         end = html.find(end, start)! c5 P- y( T/ `+ ~
  19.         if end >= 0:! L+ F. f* B. A7 D$ w5 P# b! v6 v# @
  20.             return html[start:end].strip()
  21. \" Z: }# {* {/ d1 |; Y' L9 a* B; \  K+ E1 L

  22. , o. b- ?/ q) G. ]def getTextLeft(html, end):
  23. 2 @7 \+ R8 e0 }' S4 K9 _    start = html.find(end)
  24.   G: u/ G, }/ W9 X7 g6 C7 r    if start >= 0:
  25. 0 \8 U$ _3 g9 n/ y* K* M        return html[0:start].strip()& n, }( n$ R3 N1 x, g

  26. \" K( B& I  g8 s7 N0 O% G% N. I. z8 s, a) M1 Z2 p9 ~+ L+ {' v
  27. root = tk.Tk()
  28. 5 d6 ?1 B\" B\" e0 I* croot.withdraw()
  29. ( d% b. c& p5 ~- v$ N) F, i: O, ^, W
  30. filetypes = [(
  31.   H) r; ^0 _, z+ M6 N    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]\" Z1 \; T- T: U2 C% v
  32. file_paths = filedialog.askopenfilenames(filetypes=filetypes)6 F& i9 c2 d: m9 e' q* \8 m
  33. / V1 `- G. z\" N( f! h6 c4 Q3 j
  34. for file_path in file_paths:
  35. 8 b0 d6 ~% c* [0 u/ k    print(file_path)
  36. : X8 \0 A! F# A8 ?
  37. + n/ C! w# y8 B9 [4 `* i\" `    im = Image.open(file_path)
  38. ) F/ A6 M& g) Z: u2 }    print("image/" + im.format.lower())* ?% p4 S- V' L% Z3 N1 h7 B9 A7 T! s; D, d
  39. 8 d/ I  M\" B' ?, [+ P
  40.     with open(file_path, mode="rb") as f:# Q3 b: B) r! j& }/ k
  41.         file = {* [\" J  j' U7 z  y) O7 |5 {
  42.             "flag": "1",
  43. , z; H, L1 V  o  T3 z4 t4 S7 b            "pic_path": (basename(file_path), f.read()),5 {5 }1 W1 n, ^* U8 _
  44.         }
  45. $ C+ m( m9 x) v% E        encode_data = encode_multipart_formdata(file)% f6 m- L: u7 r! y) b. G3 U. c

  46. 1 O1 c. |5 D0 S: o1 m7 `        file_data = encode_data[0]
  47. ; r* ?8 g4 ]; F8 X6 Y
  48. 0 B5 h; D8 D$ H8 N; D        print(encode_data[1])% R' |. x% y' D5 `. Z* }

  49. ( p  {0 [& d\" z0 z! N: y9 `3 A    url = "http://pic.sogou.com/ris_upload"6 {) R. A7 N* V: X! \
  50.     headers_from_data = {
  51. 9 E6 `9 T  u, j% r8 Z! Q+ N        "Content-Type": encode_data[1]5 f1 M5 F6 ]/ r$ |. _6 c, O
  52.     }
  53. 1 s3 }0 S6 r\" j  W    response = requests.post(
  54. / m* |5 e- g1 o$ M$ I7 u  K        url=url,
  55. 6 a# x3 x$ Y* N; u        headers=headers_from_data,
  56. 9 W& d3 R6 n\" m) w# x/ ?( o2 n7 W        data=file_data,5 Z; u) f, }8 Z/ j+ g3 e, t
  57.         allow_redirects=False)& v& f9 j2 G; R+ m
  58.     response_text = response.text- I2 w& ?2 }, V9 y  |: q) _
  59.     start = response_text.find("<a href=\"")2 T$ b+ ~2 g( ?. l
  60.     start = getmidstring(response_text, "<a href=\"", "\">")% ~8 t; Z6 t6 V8 l\" m
  61.     print("相似图片:" + start)$ _8 k- f. T. f* U0 C- _) Y
  62. 4 g\" b! _& K3 s8 u7 w+ b
  63.     start = getTextLeft(start, "&oname=")% O3 g+ k% J$ v0 x( h! A. X
  64.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"; X; p/ s4 ?9 a- D# |
  65. $ o% z; \6 \% `0 l
  66.     start = requests.get(start).json()! R1 Y1 s% ]+ U; u0 G
  67.     print("上传的图片:" + start['query'])
  68. & ?. a; Z& T' ^7 Q\" N) c

0 u0 e: s  {; U8 Y6 F5 U  e5 y% f0 y. G# |! e
转发自派生社区: u8 Z: u' p! J9 }0 h2 n# d2 P
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-20 01:34 , Processed in 0.409650 second(s), 49 queries .

回顶部