QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
) V4 O! U- O$ A3 b$ W
  1. #!/usr/bin/python
  2. * I3 d9 ], X4 W/ a# -*- coding: utf-8 -*-
  3. 5 ~4 B. x* S* ^' P+ i$ g& }* _) P$ Y( c9 J7 H( R# Q; Y# x& v
  4. import tkinter as tk8 k  O' }' T7 |9 @2 W0 [$ Y
  5. from tkinter import filedialog
  6. 3 T* `: X) W/ f/ R/ g2 P1 T* s( k! g$ ]2 L/ T, j. b: V+ k4 B; v
  7. import requests& w1 d! n, V\" V; A
  8. from urllib3 import encode_multipart_formdata
  9. / ^- b+ X\" w# e0 P' c, {2 n. ]0 j/ f
  10. from os.path import basename) b; G: S) M' V

  11. 3 T( {' ^, r8 ^  Efrom PIL import Image
  12. ) x5 l+ v5 T% Q$ B: p. k8 q% K/ d/ r! V

  13. * }+ P7 D) Z6 N1 Jdef getmidstring(html, start_str, end):
  14. 4 H6 W9 q$ T) f, Q0 `( B    start = html.find(start_str)
  15.   x0 P% d3 _% k0 X0 y. ^    if start >= 0:
  16. . R3 G- L# }- h# `, K        start += len(start_str)
  17. - N) A5 `6 v1 E) F        end = html.find(end, start)/ h) S+ `9 @% O7 o- P  l\" R5 V
  18.         if end >= 0:
  19. 7 ]\" w% R4 o& s- i4 o            return html[start:end].strip()# B, A4 ]) J1 ?; y8 k
  20. 2 j/ ~2 d1 w8 M

  21.   x+ }! E; ~1 a3 M9 udef getTextLeft(html, end):
  22. , ?9 g  l$ a$ f& l    start = html.find(end)/ C9 a' w5 o8 s' f1 C
  23.     if start >= 0:
  24. : S. l' g' Q: R5 c% e        return html[0:start].strip()
  25. 2 s3 F' m& Z# v9 c8 u5 ]( n1 w3 F3 u) _$ x% Y
  26. 4 V0 x  o& @% I
  27. root = tk.Tk()+ p0 p4 X- B- @0 k- j4 T\" l
  28. root.withdraw()
  29. 5 m3 s9 |5 G+ T! q2 h0 e7 x$ M- F7 N2 _8 g# ~: ^
  30. filetypes = [(
  31. , C( ]5 S1 e5 z- {7 C* J    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]$ O  q4 k( v- p5 N# T7 a
  32. file_paths = filedialog.askopenfilenames(filetypes=filetypes)& ^4 m# [. _/ L4 I5 M9 T, e, r* o  B
  33. ; W* G( D1 o3 S
  34. for file_path in file_paths:9 E2 X) C  A\" o2 M
  35.     print(file_path)3 z( x( J) O* R* V1 l6 g8 x1 ~

  36. , ?$ }$ @& j$ I! Q    im = Image.open(file_path)
  37. ( `. w# a+ H' l' C+ E    print("image/" + im.format.lower())
  38. 3 }7 n9 M6 H, V/ |- p( d7 s- G; G7 p! F
  39.     with open(file_path, mode="rb") as f:  B8 \* _( W5 p
  40.         file = {
  41.   J/ V: q9 Z; }0 e) A; [3 m+ |7 k+ [            "flag": "1",
  42.   q. g0 S) y, ~7 p1 p* }            "pic_path": (basename(file_path), f.read()),7 x1 r. N* Y\" w\" }
  43.         }
  44. 3 W# M% A; G( \. o. T        encode_data = encode_multipart_formdata(file)
  45.   s  G4 o' U- j8 v& e  E1 t- Y6 T2 }
  46. ( b- |' I% V\" W; e! J5 ]        file_data = encode_data[0]3 C4 U1 w2 t' _# J3 Q
  47.   A( C\" B* x\" d4 f
  48.         print(encode_data[1]); u& d9 w( i  y% ^% I

  49. . ^# h5 w\" T5 f1 [8 i    url = "http://pic.sogou.com/ris_upload"5 ~: T, K; ]5 r/ S: |
  50.     headers_from_data = {6 _6 e1 ~) f4 m) g) Y
  51.         "Content-Type": encode_data[1]
  52. 0 S  i5 D$ j; c. o- A: M    }9 j9 P) L9 P* X9 B  C
  53.     response = requests.post(0 s4 [+ D9 w/ h# E8 |
  54.         url=url,% L$ Q. t+ R) R
  55.         headers=headers_from_data,7 V* d\" K* ^. |
  56.         data=file_data,4 I% V6 M3 B' E9 W6 H
  57.         allow_redirects=False)( x6 J2 o$ e\" y2 P+ v
  58.     response_text = response.text
  59. % V9 C/ z( o, ~  t% B    start = response_text.find("<a href=\"")
  60. + M4 }- s/ P\" d6 ]$ l: F    start = getmidstring(response_text, "<a href=\"", "\">")
  61. , X\" l# m* p5 n\" @    print("相似图片:" + start)% `; q- Q% Y0 A0 v' Y

  62. , p/ u7 i: r6 G3 q( L/ W1 ~3 G    start = getTextLeft(start, "&oname=")
  63. / l* L+ u4 a$ }: V5 |\" ?+ T    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  64. 3 Q. q& Z\" z2 Z% j7 j4 g1 H. O9 Z, |- s( V
  65.     start = requests.get(start).json()
  66. \" F% ^0 x5 i+ R% l! N' z    print("上传的图片:" + start['query'])# ^: c% E$ P5 K\" `. X  v
/ C+ }" Z/ X% t" A% K

" k+ |8 T7 V; ~, q! M4 q* |转发自派生社区
* S7 }$ w" A. M
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-9-2 14:24 , Processed in 0.425437 second(s), 49 queries .

回顶部