QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
# E  B2 j* D$ W2 N. u- C
  1. #!/usr/bin/python; g\" Q4 s- I1 t) s5 K0 o  S
  2. # -*- coding: utf-8 -*-0 l! E, m9 i! T  S: c
  3. , E2 V1 N: g6 e  a; m
  4. import tkinter as tk
  5. - }3 h+ O9 r( W& j/ z* Nfrom tkinter import filedialog
  6. % u7 j8 t8 V6 u5 T; O3 ~; ~) O9 H- a0 `
  7. import requests! V* E. b& I* x\" r
  8. from urllib3 import encode_multipart_formdata1 P+ l4 R7 m# D5 u$ o/ {1 g\" S

  9. ' Q9 M0 @# w  m0 e- Afrom os.path import basename
  10. \" V& K) w, S. j& w7 A+ K
  11. 5 [# r' H) D$ U1 R5 A( Qfrom PIL import Image
  12. # P5 J! V0 ^8 l6 ~
  13. ! C9 o' O1 N! K
  14. 3 N, m: Y5 ^! T) z& }& e5 q\" odef getmidstring(html, start_str, end):* }! U: x8 k' W% T; f
  15.     start = html.find(start_str): N4 e1 E  y' j\" |$ u& U1 S* b8 R; ~1 J
  16.     if start >= 0:6 L, z0 [, a2 ~' f6 x2 _9 L
  17.         start += len(start_str), n: H6 v3 S4 ~  Z1 b4 F
  18.         end = html.find(end, start)
  19. / X7 }, i/ H/ q$ J  i5 K        if end >= 0:
  20. \" \. {* |! v' F* v, t! h            return html[start:end].strip()
  21. & |5 \* L2 Y4 p+ S6 G& {+ X# s& A& n5 X+ t\" d, a# a4 l\" C

  22. 5 o\" n; K: t* q; E- Zdef getTextLeft(html, end):
  23. 7 h/ S% H6 R# b9 I8 \$ B    start = html.find(end)
  24. , a( q' w% t- h4 v+ @; q/ H2 |$ K9 C    if start >= 0:
  25. 4 _9 j- I0 @8 I/ B\" G8 ]. g% b3 \: g        return html[0:start].strip()
  26. % z9 U, f5 I9 Y
  27. # d) Y6 Y9 ]( y8 D, c1 K/ v/ c
  28. 2 K2 I/ F3 {# x. g1 {root = tk.Tk()
  29. & u( x5 B1 ?* d$ Z6 }root.withdraw()
  30. 8 G! q7 |\" @' \9 O/ Z5 O\" d9 [2 x% y# m- C
  31. filetypes = [(/ ^& _% W$ g\" N+ x3 U& d
  32.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  33. 7 a0 Q- w  k/ J# i. xfile_paths = filedialog.askopenfilenames(filetypes=filetypes)  c/ m. y\" C: W3 }2 x8 r! [0 O
  34. 1 W\" z0 T: ]7 Z
  35. for file_path in file_paths:2 Q& {* T, j2 f6 r5 r8 E( Q
  36.     print(file_path)# J; w& a% u$ f
  37. % {% W2 e\" x$ W9 p4 J3 ~, s
  38.     im = Image.open(file_path)) h6 W! Z8 H% o0 b- f
  39.     print("image/" + im.format.lower())
  40. 6 W( \5 l2 W. q4 A\" ?\" F: [# n/ S- f, u9 q7 q: [8 a
  41.     with open(file_path, mode="rb") as f:8 {2 W3 Q6 y) t9 U
  42.         file = {
  43. $ b9 r. F; p& `9 I9 H            "flag": "1",
  44. . |\" N6 @4 u; N            "pic_path": (basename(file_path), f.read()),
  45. 4 `, D4 }. Z9 i  m: b\" _        }
  46. ) l) G% o+ u+ w- x, m5 z5 K' V        encode_data = encode_multipart_formdata(file)
  47. 4 ?: j+ f* ?: a& X9 X. k4 R2 N0 w6 k( ]! a& L
  48.         file_data = encode_data[0]
  49. # E: {* w( b$ E& s# b3 I7 J+ K* {# O* h# @2 q6 i7 V8 t# {/ C
  50.         print(encode_data[1])
  51. # h3 z# j' x5 w1 q- _) y- f: F
  52. 4 d- {) U3 ^4 O0 j2 l! ~) v    url = "http://pic.sogou.com/ris_upload"9 z- J/ Y9 q/ N8 A& J* ~
  53.     headers_from_data = {% `* r4 v( C  H5 ~- `- j
  54.         "Content-Type": encode_data[1]( W! T5 h/ j/ \5 V( Y
  55.     }. V& t- a' u& ~\" s- m6 ]
  56.     response = requests.post(
  57. 7 \; x( c- |( Y/ v2 K        url=url,
  58. 8 N( E6 W; ], C; ]/ \. b4 f        headers=headers_from_data,
  59. 0 q3 D0 P& f: x) d5 ~1 g        data=file_data,3 \1 ?( c( H  W# Q! ^  |
  60.         allow_redirects=False)
  61. ! E; Q, q5 _) G    response_text = response.text3 A- B4 g9 U2 Z( l9 A3 D; z: L6 |
  62.     start = response_text.find("<a href=\"")4 v! [. X6 D( ?; J- X
  63.     start = getmidstring(response_text, "<a href=\"", "\">")! e& l3 h7 D\" F* R5 U) P- L3 Y6 N3 W
  64.     print("相似图片:" + start)\" `7 j- {9 |  |
  65. ; a6 K/ x: W* f
  66.     start = getTextLeft(start, "&oname=")
  67. ( `- D, J' P9 Q( }* P$ E, A    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"8 b; L9 m, C* q  a; O
  68. * R4 F  _' R  x\" D4 Y# E\" A4 `7 }
  69.     start = requests.get(start).json()
  70. 0 @, {- m, {\" a4 _    print("上传的图片:" + start['query'])! `# B7 f3 D' V* g2 H
- m3 j4 m" }6 z, Q; e8 W, v

: X# d' \1 D. S+ S! _2 @转发自派生社区
) F8 N% C. K& t- |+ w- @
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-6-2 22:37 , Processed in 0.342504 second(s), 50 queries .

回顶部