QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

5 C! W+ {1 ~$ w. H' Z% t
  1. #!/usr/bin/python! o& X5 `* a: H% I$ Y+ Q
  2. # -*- coding: utf-8 -*-
  3. 6 ~& z: W0 |$ f\" S
  4. 7 |\" s! A9 a: x6 S2 L9 C, v; himport tkinter as tk+ c# w% a2 R% f& I& Z: p
  5. from tkinter import filedialog
  6. : B\" w4 j! C6 {1 L+ _! D9 O$ c7 Z* k3 X  x' R
  7. import requests; W; n+ Z+ {\" n
  8. from urllib3 import encode_multipart_formdata
  9.   t0 ?: U6 r1 E! d' ]+ M/ J% S3 \; k: Y. z5 w$ x
  10. from os.path import basename
  11. \" _0 G! o# b4 f+ }7 b) v
  12. 5 w& U, E- P% `3 U0 rfrom PIL import Image& f5 V. i+ i  {3 ]' P
  13. \" w0 O0 r4 H( H+ L: O
  14. ! N  r+ W# e- ^0 ~) L
  15. def getmidstring(html, start_str, end):
  16. . V$ R! C0 ~! p. o9 O$ n4 Z    start = html.find(start_str)
  17. 8 t' n; J\" d: d) z! g8 y* [    if start >= 0:
  18. * e5 a; F  h$ E( V+ l. q        start += len(start_str)) M2 y/ g% Q. A+ `
  19.         end = html.find(end, start)4 @# k) k8 n+ _/ a4 ]; b8 }
  20.         if end >= 0:
  21. 8 b. S( p% q  Z2 a' \0 ^! q            return html[start:end].strip()0 c, w% d% J' _0 ]4 e8 L4 s9 u

  22. \" g\" z* P5 u; Y* |* K# ~: p( w0 u3 g  k$ @# h
  23. def getTextLeft(html, end):
  24. - X, z8 \9 F0 C& j  N    start = html.find(end)% Q& d) K  J% M  ^
  25.     if start >= 0:+ M: p1 f7 v7 O; ~  s
  26.         return html[0:start].strip()' t6 G9 X* {7 o/ q1 L/ L* y
  27. 5 X: w: P* Q% \5 C1 O* H\" p% W

  28. 6 y) m- [( A( }. J0 v+ r( Qroot = tk.Tk()% H9 ^% q% s- u\" S' o9 q
  29. root.withdraw()4 ^9 U7 e: q/ f4 m2 G
  30. 3 o# k% X. s+ Q
  31. filetypes = [(
  32. 8 L9 z& ]9 [, o# O( c    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  33. ) K: k; ~' v( Bfile_paths = filedialog.askopenfilenames(filetypes=filetypes)8 F; t5 C3 p  ^7 F
  34. . B2 `/ B4 r) t3 k( U! J( h  I4 j1 N
  35. for file_path in file_paths:
  36. + l. r, s/ l) Y6 C    print(file_path)
  37. 7 M* U+ k1 v7 p' }  A1 I2 y
  38.   O: J. x) q* B    im = Image.open(file_path)5 B' f# X& N- \8 D; O8 ?
  39.     print("image/" + im.format.lower())
  40. - d# p2 h0 c5 b( v
  41. ; {. i. B5 r  E/ a7 X# J- T    with open(file_path, mode="rb") as f:
  42. $ G  x$ M' `0 R0 X6 W) O        file = {
  43. \" _( |/ g& R0 k2 i8 F1 ?- h            "flag": "1",
  44. 1 f3 o* ]5 s0 e/ o/ ?! ^4 ]            "pic_path": (basename(file_path), f.read()),
  45. 8 ~- W( z6 ~\" a4 H        }0 `3 Y# b+ ^; i\" D
  46.         encode_data = encode_multipart_formdata(file)2 v  H, H2 t+ d4 f
  47. \" n. F2 D$ C0 \- H
  48.         file_data = encode_data[0]
  49. 4 l* e/ O8 \: N% }) h& W
  50. ; I4 |7 ~( B/ x4 D* L1 _        print(encode_data[1])
  51. / n( G; T- @' }. H8 ~' ]
  52. 2 v/ @\" I2 O0 d1 h    url = "http://pic.sogou.com/ris_upload"
  53. 3 T9 J/ ?, f- A    headers_from_data = {5 o# k7 q7 Y, c/ M1 Q5 A! |6 c
  54.         "Content-Type": encode_data[1]# t' f* K( l, c% `% G/ J9 I- I) s
  55.     }5 w; @  V6 ~! @- H( k' D3 {& s9 O1 W
  56.     response = requests.post($ y  R* J1 l/ X3 E
  57.         url=url,
  58. 8 [( C7 S8 X% p4 e5 g& D) A        headers=headers_from_data,
  59. ) o0 \# {2 k' K( S0 Y        data=file_data,
  60. ) X  A( `! r/ S& {7 w) X# ~        allow_redirects=False)  x8 J4 a9 a4 {+ z
  61.     response_text = response.text
  62. 6 c. z3 p. T9 S. Z( z    start = response_text.find("<a href=\"")* s% f; x0 b1 ?
  63.     start = getmidstring(response_text, "<a href=\"", "\">")
  64. * u: }8 h2 ?$ H6 x( U    print("相似图片:" + start)* t% J, P2 o8 x6 F4 T
  65. % r' q\" y9 m! n2 H
  66.     start = getTextLeft(start, "&oname=")
  67. ! l% O: j% B6 O# K& u6 P; `5 u; _    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  68. $ m5 Q7 C* \! \3 C+ r  ?! b7 ~, k4 @6 |+ ?% t# S\" Z1 K) S
  69.     start = requests.get(start).json(), l. E# d' A. {8 K. g
  70.     print("上传的图片:" + start['query'])8 s- r0 b8 D$ s
, J0 `1 A, G. U+ F9 ~" M

2 W$ [3 i' h3 x( D6 @2 e# K  ]转发自派生社区1 x9 S. u0 a8 o$ F6 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, 2025-8-20 06:27 , Processed in 0.623567 second(s), 50 queries .

回顶部