QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

; p+ c9 M- j  T9 h9 T' o
  1. #!/usr/bin/python
  2. ' v  |4 ~4 [5 c0 v! g# -*- coding: utf-8 -*-
  3. & P4 M2 _' T, n7 I8 ~  [
  4. % X8 W) ?, _* I! H; K* I- o) jimport tkinter as tk! C7 }( J# G9 Z
  5. from tkinter import filedialog
  6. . F. u& Q4 z. g% l& Z
  7. ' S8 }1 H: [8 P/ \2 Aimport requests4 v5 P( X* z  X6 F% b( m* Y4 E4 L
  8. from urllib3 import encode_multipart_formdata3 }6 ^$ g9 W, v) U
  9. ' J. J) f2 Y8 p* p( p. k
  10. from os.path import basename
  11. 2 X( q% i- x. R7 n- M
  12. 4 Y\" k+ H% Y5 \0 b2 Wfrom PIL import Image3 M# j2 ^, Q4 j: _
  13. + `8 _3 f) D3 F7 J% Z
  14. + }, B) F9 G8 m& j; R+ p: |& V
  15. def getmidstring(html, start_str, end):9 e/ x. l\" z( D/ o- f2 u: x
  16.     start = html.find(start_str): @6 Z& L: A6 |/ C. G' C& }
  17.     if start >= 0:
  18. % b- p: `; c3 L        start += len(start_str), K( K/ f. }% ^) T' U6 C4 H/ \. F# F
  19.         end = html.find(end, start)8 [% ~2 h  H6 g. ?1 x
  20.         if end >= 0:* Q3 H4 }# f3 A$ i* ?
  21.             return html[start:end].strip()
  22. ; `- z. }+ _3 @$ i! A, o& h, ?+ e7 j
  23.   H$ t/ \& x) |, j, {' _, Y4 _: F: \7 K
  24. def getTextLeft(html, end):
  25. \" }! V+ I, l6 S' B    start = html.find(end)
  26. * ?( Y( `: y0 j) ^! G% c7 H    if start >= 0:
  27. 5 c- O: |, x# \! o        return html[0:start].strip()
  28. 6 M/ J/ L0 I' @9 J2 l7 g& s; o7 O2 L! u

  29. ( M1 Y1 w% R) I( q3 p: Uroot = tk.Tk()
  30. 5 t4 l\" ?! z: X6 k  iroot.withdraw()
  31. 6 @! G8 c# ~7 p  c
  32. 4 J/ C2 h. q4 Y0 nfiletypes = [(
  33. : ]8 K  {& ~9 Z8 y    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]3 H; h- E( |8 s% P3 q) r
  34. file_paths = filedialog.askopenfilenames(filetypes=filetypes): v$ q- W% e& M/ _6 D
  35. 3 b/ G/ `5 a' {) O/ r
  36. for file_path in file_paths:
  37. 7 _. B) M0 C# {; F$ w$ N    print(file_path)
  38. # P  m' \0 Y* A) n$ J3 c' w
  39. 0 w* h  }* x+ X. _    im = Image.open(file_path)
  40. / ~- e2 w% |( l+ I: F    print("image/" + im.format.lower()). `% }8 p: T+ Z' D: J- G1 x

  41. % J: w' B\" \! ~, E% l    with open(file_path, mode="rb") as f:& a& k* j$ W! h) Q: h& R% F
  42.         file = {  f8 S9 z8 K  T; I! I2 y5 R, F
  43.             "flag": "1",
  44. \" }: X/ P! U, m7 d- c            "pic_path": (basename(file_path), f.read()),
  45. # }( J) P1 e% [) Z; I% L        }
  46. 5 X3 A. o1 ]3 Y( g+ c: @) Z+ u8 x        encode_data = encode_multipart_formdata(file)5 X, y! A7 v3 {( T% ?$ a5 `

  47. 0 r4 L% S\" Q& Z' U& C' n3 I        file_data = encode_data[0]2 M. G7 G5 S& H\" Q8 k1 b2 i
  48. 1 H, Q1 P3 s\" _  Y
  49.         print(encode_data[1])* h3 ?2 J9 {1 f\" c3 k9 F
  50. ) z6 Q) a! N! ~  X& p
  51.     url = "http://pic.sogou.com/ris_upload"$ [- f$ F  w- c1 H& J! ^
  52.     headers_from_data = {5 t8 _( M% v2 e( ~
  53.         "Content-Type": encode_data[1]
  54. 5 N0 r6 _\" K7 o- y/ ?: d( Q3 q5 s2 q    }- y/ A+ B* I' Z5 N
  55.     response = requests.post(9 [6 F0 x2 k: X
  56.         url=url,0 e' J+ ]0 O6 t% G$ w) ?
  57.         headers=headers_from_data,) Q2 l$ f# W2 k- G1 E
  58.         data=file_data,$ p' h6 K: U2 U, x( y( G+ y
  59.         allow_redirects=False)
  60.   H( s3 p7 Z1 A4 o# W1 d    response_text = response.text* ^9 b$ Q0 k8 @
  61.     start = response_text.find("<a href=\"")' C1 T+ U) y5 `! N$ m
  62.     start = getmidstring(response_text, "<a href=\"", "\">"). ]2 w# {; n- I( O- a) D6 ]
  63.     print("相似图片:" + start)8 n! B' A4 c8 _0 l5 I  F7 d

  64. 2 o1 O9 G- @' b, P9 a! B    start = getTextLeft(start, "&oname="): ~9 u. K$ W- I) K2 g  S% _
  65.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  66. % G8 W9 K6 A; `
  67. 1 m\" M7 D, F) m    start = requests.get(start).json()
  68. + z5 r5 W* |/ {- s1 c    print("上传的图片:" + start['query'])
  69. ) O- G% u4 P! i\" y& P6 Q& d& f
0 F- L& M; x3 k& Q2 g, A
3 C1 @: a) ?7 \3 k. H
转发自派生社区
6 ?9 z& i, h7 j4 t- `$ o
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-4-20 20:42 , Processed in 0.427931 second(s), 50 queries .

回顶部