QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
4 f7 s/ y- V% D6 s( L
  1. #!/usr/bin/python2 v7 O9 t1 V8 g& d. t
  2. # -*- coding: utf-8 -*-6 S7 w% l  z( M  E- a
  3. 6 S\" \8 z7 T& u- q- ~: S. E
  4. import tkinter as tk
  5. # g, o% S3 t) O& o( R  V  B% S. Efrom tkinter import filedialog& S- {  [: G* ^5 \  e8 R

  6. + [6 t7 u+ m* \0 ]\" d: eimport requests; |- @8 |) a# B  v/ A# B' p
  7. from urllib3 import encode_multipart_formdata
  8. : q4 l5 o; {% c( z; Y\" m6 k
  9. ) L- G3 N* x3 Jfrom os.path import basename0 q3 M# c# f- P; |  r) b
  10. 0 K& t' d# _4 m# w) O. e. V
  11. from PIL import Image* }: e- v\" {\" x8 b\" `
  12. ) O) T' R$ Z2 [' ~2 A

  13. 3 D7 _- |6 _2 w3 edef getmidstring(html, start_str, end):* s& [3 K7 U7 n7 T, N
  14.     start = html.find(start_str)
  15. + C7 d# j9 ]# L8 I. \    if start >= 0:! w+ U2 [7 t7 ^! u8 c
  16.         start += len(start_str)
  17. , [6 K  f0 c* U* L1 W: M  _        end = html.find(end, start)0 p. F5 b& y' a! e# e+ m0 R& b5 R
  18.         if end >= 0:
  19. , U! [. k# ~. V: e) ?            return html[start:end].strip()$ D0 ~) w& T) U- c2 K

  20. 1 j' J0 P! T5 P\" T7 ?4 i
  21. ; A  S3 f- e! Pdef getTextLeft(html, end):
  22. \" F( H% i4 v6 M\" O( z# K- \    start = html.find(end)
  23. 6 J, i+ h) _& O  _, f    if start >= 0:* P( f* w4 n0 Z- Z2 O
  24.         return html[0:start].strip()1 C9 ]& V. j: ?0 w9 w; [4 b7 S0 o
  25. 4 J* P- I( }  H& U- h  H7 U
  26. * A- h  N' d1 |6 f+ r- G8 ^% x
  27. root = tk.Tk()
  28. 0 R! [0 w+ z4 d7 L\" }root.withdraw()& J' ?, u- D5 d9 ?
  29. 7 n& w& [& b( F, s
  30. filetypes = [(
  31. % O2 o9 P0 w\" Q7 _% }/ Z0 M# ?    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  32. ) v  X; X5 R; c* y\" gfile_paths = filedialog.askopenfilenames(filetypes=filetypes)
  33. % h4 w* A# C3 A+ I\" c& ^1 Q
  34. 6 F% c; L+ b+ S4 l4 X/ sfor file_path in file_paths:
  35. 8 y+ b& g6 C; U7 r+ L8 p/ H    print(file_path)
  36. 1 _$ `, N8 X2 v( {9 D; v! `
  37. 2 P4 E( b* F) J' f0 F4 t    im = Image.open(file_path)& x, z* a/ O- @) N  c) }
  38.     print("image/" + im.format.lower())* k  I6 f5 E* w0 [8 h8 @& X+ Q

  39. 3 G6 c: {0 L+ q6 z9 s+ s, h    with open(file_path, mode="rb") as f:( x* T/ W& q- ^6 D! V# H) n
  40.         file = {
  41. 2 X' ?6 O  t2 `3 i% B6 L            "flag": "1",& J  K0 e  R9 e( }2 J
  42.             "pic_path": (basename(file_path), f.read()),! a# _! d6 w5 q; a7 H0 u+ o
  43.         }
  44. 8 {* H# k9 z/ t$ B/ Y+ }        encode_data = encode_multipart_formdata(file)
  45. 7 s/ L. I% d4 k6 ^- S% @$ w/ e\" z/ ?6 o( b, C% D
  46.         file_data = encode_data[0]
  47. 4 o1 y$ B; I3 c( _; q
  48. 6 v$ X9 i9 Y. H        print(encode_data[1])
  49. # Q\" ?' [1 X2 L3 F- {5 o. j4 i2 b
  50. # h$ p- F! W* h* @/ Q; Y    url = "http://pic.sogou.com/ris_upload"0 j7 n1 z) [! _
  51.     headers_from_data = {
  52. , J3 n4 ?% F/ h; x$ @2 `, _        "Content-Type": encode_data[1]
  53. ) P0 @3 a6 f! q; R8 h7 P    }1 J. x7 q) C4 o, ?3 [: o0 r
  54.     response = requests.post(2 E' {! J( I0 U5 f1 U
  55.         url=url,4 ^, k& ~; j+ `& n; t! X
  56.         headers=headers_from_data,2 U\" z: l$ Q1 K; V$ D
  57.         data=file_data,
  58. & N9 S: l/ ]# `7 O+ z9 b/ p2 t        allow_redirects=False)
  59. . Z3 ]0 l+ N# f0 ~: e    response_text = response.text! o5 j* n' @1 ?0 N
  60.     start = response_text.find("<a href=\"")
  61. 0 G% A& A$ {6 e. Z+ y# ]    start = getmidstring(response_text, "<a href=\"", "\">")
  62. 6 J8 O$ x7 `5 ~1 v' j' t7 T    print("相似图片:" + start). B( P\" M2 s9 v1 {$ |6 j- o
  63. . s\" U: E3 {. t/ a; G5 u( |
  64.     start = getTextLeft(start, "&oname="): Y7 y1 i  v\" F
  65.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"/ V$ y* ^. L9 W' l! D

  66. - @3 |0 q& Q. d  y. W\" i9 L    start = requests.get(start).json()4 e8 y( {0 S* E\" l5 v
  67.     print("上传的图片:" + start['query'])0 k* j+ y! ^0 B, C: v

% R0 F. m9 H/ J: r# ?* T% ]& A  l/ J  ~$ [, W
转发自派生社区
# j8 k9 L. M1 I7 _5 C
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 16:03 , Processed in 0.499714 second(s), 49 queries .

回顶部