QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

, p0 {" B( }. c5 k: a( }& R
  1. #!/usr/bin/python
  2. / E1 Y0 v/ V3 A0 D4 D2 {# E# -*- coding: utf-8 -*-/ W( M8 }% n; Z5 @0 g. N5 F( i5 ]

  3. , Y, ]7 a5 n8 d2 f+ j- V( q9 Pimport tkinter as tk$ p% l8 a+ K0 E! M& I/ W1 G) A
  4. from tkinter import filedialog/ y8 p. u/ D7 `; S! i+ _: P& m
  5. # [+ _3 L; t! e( m: ?: z9 a, p
  6. import requests
  7. ' m( B! b! ^' q; [1 _9 d3 ffrom urllib3 import encode_multipart_formdata
  8. . `1 m# ]( U% m$ X2 d3 B4 Q& @
  9. * f6 {3 m1 H4 h\" I( d) f( ^from os.path import basename
  10. / r. A7 F\" j  F- @; ]! c: H+ C' J4 |& h, U3 t6 I' r
  11. from PIL import Image
  12. + ~' J& J! I1 j- H8 R8 l2 [) i5 Z5 G5 ?, _; ^6 Y: h\" p( ]
  13. 1 S$ h) z0 A7 i5 Q
  14. def getmidstring(html, start_str, end):
  15. 9 d- O! h, B0 f8 R; s* e  `7 u    start = html.find(start_str)& S$ Y, s) |+ O/ K
  16.     if start >= 0:
  17. : `- |% H+ c% _: B1 D7 K8 P  r/ S        start += len(start_str)
  18. 7 a4 e5 B3 b6 g8 s+ H( [$ _! o        end = html.find(end, start)& P- N/ {: \/ a6 i* k4 F
  19.         if end >= 0:( T0 {$ n# W0 f6 K9 o0 g, D# k
  20.             return html[start:end].strip()& _+ Y2 p, O. h7 K$ x$ a
  21. $ Q7 P\" a+ L) j\" b

  22. % R1 ~8 D' \0 L2 {# bdef getTextLeft(html, end):
  23. . B  J1 b) z# ^! Z/ O, g7 ^) F    start = html.find(end)0 O# b\" B# W) @* Y8 {
  24.     if start >= 0:8 q6 ^% P) O* T: T8 S$ b
  25.         return html[0:start].strip()
  26. / ?# s& {6 b7 |, s
  27. 8 T+ b\" Q. k; z' A6 \/ \  r
  28. ! P% L# _8 C( z5 @6 i: }root = tk.Tk()0 t+ w* s6 d1 s/ M
  29. root.withdraw()
  30. % ]6 u/ y! q$ V! m1 G% T, O% I7 x8 f! X& p
  31. filetypes = [(# P! P% f1 i  I& w' r+ Z  N
  32.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]! A$ R6 p2 U* P0 C8 I
  33. file_paths = filedialog.askopenfilenames(filetypes=filetypes)
  34. 1 H9 j% J$ m7 |\" P* X4 m% \1 L& I
  35. 8 k\" p' _/ e5 H& a% jfor file_path in file_paths:\" F4 x- s& J' p2 C7 \$ y. g7 w) P
  36.     print(file_path)
  37. ) D  K6 n/ c4 v0 ~* a2 o  K/ \: W\" k; F
  38.     im = Image.open(file_path)- A5 J, ]- W: L) K9 v
  39.     print("image/" + im.format.lower())  X0 h8 {9 r: t3 p/ A3 r! D
  40. . P! R; o! v8 R# S
  41.     with open(file_path, mode="rb") as f:
  42. 8 ^' E\" c/ z: p/ O        file = {; J( B& o- _3 e8 c  r, d
  43.             "flag": "1",
  44. 4 Q: c; v# |2 W/ W' T9 v            "pic_path": (basename(file_path), f.read()),
  45. % X1 T5 R4 f, z( X. I        }3 D7 m( a) m$ T, B/ D! G9 D' E
  46.         encode_data = encode_multipart_formdata(file)
  47. ) u' l+ V# _# [# s  }, l$ z, j) U% |* P4 v( x- R1 D9 i
  48.         file_data = encode_data[0]& }' U( O$ b! L# O' e5 G9 r
  49. / S\" K) `) C; T8 |$ b- A
  50.         print(encode_data[1])\" z4 k9 e- ~$ s, M' y% B- |# K
  51. ( p* u: l4 t/ Y; T1 R/ w/ f
  52.     url = "http://pic.sogou.com/ris_upload"0 Y1 x9 Q5 |& ?4 O  l
  53.     headers_from_data = {
  54. 0 C! |4 O, r( c% {- P9 v! @7 }        "Content-Type": encode_data[1]2 Q7 |# e7 x3 X: _% Z
  55.     }
  56. 7 G! f% m; Y2 D, x9 a6 q  {7 v, W    response = requests.post($ N4 }. E4 ^3 ]# p# @; f
  57.         url=url,& t, k3 v  u% ~) l2 Z# i1 a; R4 _
  58.         headers=headers_from_data,
  59. 1 P4 n+ j7 D* T2 E        data=file_data,& \2 e3 S9 A6 j* H
  60.         allow_redirects=False)
  61. 7 h$ N6 {, a, r* B3 |\" ^  k    response_text = response.text
  62. ( ?$ R, C  Z+ U5 x\" u- i    start = response_text.find("<a href=\""), @1 i  ]* @1 l4 M4 K* q) h
  63.     start = getmidstring(response_text, "<a href=\"", "\">")# P9 Q\" h5 M: P9 B) S. K' P
  64.     print("相似图片:" + start)* d, g: i2 R1 g8 N- U

  65. # l' ~, O+ N4 ^1 @9 q    start = getTextLeft(start, "&oname=")
  66.   u6 i# g) F% b1 d8 q    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  67. . U# q0 @7 F: D$ M; `% i9 m7 v5 |9 k8 r- Q# U0 D9 H: r
  68.     start = requests.get(start).json()9 k+ ?0 O3 ?. A
  69.     print("上传的图片:" + start['query'])
  70. : o5 \& R% B% F: `/ }# w7 a. y
6 G0 v% f4 M9 W5 x2 P8 @* S6 _7 P2 c
) i9 ]/ t( `/ d* C" w/ w- c4 Z
转发自派生社区) G$ H% ^- N: Q) y
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-3 03:21 , Processed in 0.500540 second(s), 50 queries .

回顶部