QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

$ d/ b6 J8 i$ b5 @* v
  1. #!/usr/bin/python! W5 R8 T  V1 D
  2. # -*- coding: utf-8 -*-/ J; u) q% V6 g\" {5 a
  3. 1 R. r9 u9 s6 x* l0 j) D9 t- F  N1 x
  4. import tkinter as tk1 y0 Y6 Y! B' Q* |8 }
  5. from tkinter import filedialog
  6. 1 G+ j0 |- `* K7 p# W! Y8 d6 W1 A0 O: t- |5 l& m0 T- t
  7. import requests
  8. % C8 A( s; e8 K, X7 T$ g+ y* m& Kfrom urllib3 import encode_multipart_formdata* `* s% A9 W4 o, v6 r

  9.   _. [. a5 C) k2 c. ffrom os.path import basename' H) D7 m+ t1 ]\" ~- c: S
  10. 3 A* K6 L2 M' }1 m- x
  11. from PIL import Image
  12. 1 b% y9 ~* M+ e) J+ k7 j* A\" M1 ]4 I6 [. T' s  c) i3 }' z
  13. 7 C0 t! v+ `3 q\" m. [. N$ V' J' n* u
  14. def getmidstring(html, start_str, end):
  15. \" Y5 N& {1 g* a- ~    start = html.find(start_str)1 f7 ?  c6 I# v' o
  16.     if start >= 0:$ C- X# X: N* W$ t0 W4 v
  17.         start += len(start_str)
  18. : {2 H# A' z1 n        end = html.find(end, start)
  19.   e% J6 K' Y: H- k) d8 f        if end >= 0:
  20. \" ~, |9 D: t# g) p4 t& h  R9 {            return html[start:end].strip()\" ~9 |- M) G& x+ m
  21. : L5 F8 D/ U6 [! Y\" c

  22. 4 J. d, w$ ^1 c# idef getTextLeft(html, end):
  23. ; K( \1 e) F& [; ^- }% T7 u5 r\" k    start = html.find(end)
  24. ( z$ H! h/ D9 W3 e    if start >= 0:
  25. * _! v* p/ n) o  r, f3 ?7 j        return html[0:start].strip()
  26. 4 L( z+ i1 W! P$ X- r/ L9 j0 o4 y1 o

  27. 6 Y3 x+ r- z\" j: g2 Z- p+ E2 |root = tk.Tk()+ O& w0 Y: I  w/ Q7 H9 S+ m
  28. root.withdraw()$ c# l5 H2 N8 Z; w% E5 U) O3 i7 T

  29. - j- A% G8 X* y- V/ P/ jfiletypes = [(, N4 o9 H\" ~( q( P2 y2 {& ]5 x
  30.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]- K; ?1 Q  A- Y7 j
  31. file_paths = filedialog.askopenfilenames(filetypes=filetypes)* H8 ^9 q\" M1 T4 w
  32. % I$ J( x- `2 u7 V\" r9 N0 v
  33. for file_path in file_paths:7 c$ a* w% i7 `
  34.     print(file_path)
  35. ' z3 u1 }. `+ k0 L8 y- o. @& z' E
  36.     im = Image.open(file_path)
  37. \" q/ J+ {/ `3 [0 R6 S) \) f1 ]! b    print("image/" + im.format.lower())$ s) O' N) g8 u+ F

  38. ; m  [; x' x& c' e- a+ E( N    with open(file_path, mode="rb") as f:
  39. & ]: {) ^  u, e. ?# D        file = {3 d' B' s% y6 ?3 ~; D& Z9 s: n
  40.             "flag": "1",
  41. ! M3 ?) |( A* R5 A1 h: T            "pic_path": (basename(file_path), f.read()),
  42. - @( p7 i* [$ A; y6 F' Z; w1 Y7 y9 I        }
  43. ' `& I$ Z/ }8 O7 S2 l$ c3 y; b        encode_data = encode_multipart_formdata(file): F% e7 p) _' \& T\" J' s: C
  44. \" I) V* ?! C: N# L2 @
  45.         file_data = encode_data[0]
  46. 5 t( o, z2 B9 B- {
  47. 7 }- v! J% A; b1 c( k        print(encode_data[1])/ e- s0 X# `3 e  y

  48. 9 y) x( W' O9 Z, B; W    url = "http://pic.sogou.com/ris_upload". f# ?# p: I) r1 w$ i- x8 t4 _
  49.     headers_from_data = {2 B+ O. P6 }/ r0 f
  50.         "Content-Type": encode_data[1]
  51. ; H( K9 t# B% m5 b. R, Q2 w5 u    }
  52. ! {2 Q\" E, S) s4 p! u4 Q; J! |    response = requests.post() B/ w3 D+ I! K+ {, B* _
  53.         url=url,, X$ `1 c3 Z; @
  54.         headers=headers_from_data,& O; M/ v# @; L
  55.         data=file_data,
  56.   i+ {$ A9 d0 _2 j        allow_redirects=False)* j  s8 r8 y) o+ l* m7 F! o
  57.     response_text = response.text
  58. 2 F; F* ~\" @* f, y    start = response_text.find("<a href=\"")
  59. ' J* w& W0 X) k# s6 C9 @) j- R5 c    start = getmidstring(response_text, "<a href=\"", "\">")
  60. 2 Z  G. b. \0 P5 X7 M5 X    print("相似图片:" + start)0 R% j. H) [! y- s
  61. 8 L$ t2 Q% M# V0 _; |
  62.     start = getTextLeft(start, "&oname=")
  63. . O, b2 O2 A3 s  s& i+ y    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  64. 9 B\" x3 z9 z- U6 t2 u. @5 K5 ?6 v4 M3 B( ~
  65.     start = requests.get(start).json()# T, M$ O) G- B2 N
  66.     print("上传的图片:" + start['query'])2 F% K$ O% p! b( T  f* ^: c) W

3 Z% c* r0 ?( G" M% w; [
9 O- n+ v" J% c5 p% ]8 K转发自派生社区
& f0 ]2 y2 g) }+ @1 _; A5 B
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, 2024-4-25 13:13 , Processed in 0.263671 second(s), 49 queries .

回顶部