QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |正序浏览
|招呼Ta 关注Ta
/ H& u+ [+ O; L" R/ J# \6 L3 q
  1. #!/usr/bin/python
  2. 6 O\" h/ W4 D& r5 f# l  Z# -*- coding: utf-8 -*-
  3. - P1 g5 c2 f9 Y\" i! a\" X# D3 u* ]) R\" L, A! z  \
  4. import tkinter as tk
  5. & S- |. l$ }, @\" D* ~( Ofrom tkinter import filedialog9 k4 u2 l; L6 K  U4 N
  6. * ?: v% X\" z5 d
  7. import requests
  8. 8 f) A. X+ y\" S( R+ {- Zfrom urllib3 import encode_multipart_formdata
  9. 0 k+ K8 o\" O) y' R
  10. 4 v8 F+ |* z& y7 m( F* qfrom os.path import basename0 L0 o- t* ~9 o& M3 s3 \6 Q( l

  11. : x8 g. e, r' b/ B3 S7 G2 A$ |& ^from PIL import Image+ }9 L3 y' `. _% o. q4 P$ ?

  12. ! C) r9 h7 s& C# r; a6 f; G3 h/ I. L; T
  13. def getmidstring(html, start_str, end):6 z! o& M- d% v. y$ ?
  14.     start = html.find(start_str)' r. `! H* K/ Z4 F: r) N
  15.     if start >= 0:: z! Z& C# _3 `4 z- M% R! m  Y
  16.         start += len(start_str)
  17. / ~1 Q. N\" i  B/ K; D5 K        end = html.find(end, start)
  18. 3 H0 l0 a3 O0 T) f# z        if end >= 0:% K% \\" \1 m7 a8 H
  19.             return html[start:end].strip()
  20. 1 M7 M7 k' |6 M0 S6 g: M
  21. 4 h3 K! t# S% J
  22. \" e! g4 m* ]- C# B3 odef getTextLeft(html, end):
  23. + k\" x, p\" v$ f' {2 j8 {    start = html.find(end)
  24.   d9 i4 ], w  P, p, Z0 P# G    if start >= 0:
  25. & p; C* g9 s( e8 @+ k; l0 p; N        return html[0:start].strip(). l  I* G% q- K* u2 {: k- \
  26. 0 Z. u- f* f+ M  H; T) g

  27. % D% A$ c( x& w% Sroot = tk.Tk()7 \9 c- J; m# R# v3 I! a5 M% p
  28. root.withdraw()
  29. ; ]4 L/ N$ f' [* w; O1 y) I
  30. ( {3 ]9 p# a: dfiletypes = [(
  31.   {1 {: Y* C1 \4 a% E* ^- t    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]+ Y( l( k  ~3 x2 p9 n
  32. file_paths = filedialog.askopenfilenames(filetypes=filetypes)
  33. 9 A5 U* N% l8 l6 _* ]\" {
  34. 4 @! ~* w  H; H5 `( V- J/ a+ |for file_path in file_paths:5 a1 P1 }3 f% B/ k) {' I\" z& }
  35.     print(file_path)9 s; G6 |; _8 t+ I

  36. / ]. X1 o; j2 h; z    im = Image.open(file_path)4 T4 ?) L\" R* `9 B8 O9 k\" L+ M3 r
  37.     print("image/" + im.format.lower())
  38. ; f# X0 C/ v7 S* A
  39. 0 z/ p9 }9 I6 \, `# V    with open(file_path, mode="rb") as f:
  40. ; P8 {: n* B! f& G. p        file = {: g7 |$ J5 R- L* x, J4 ~9 z
  41.             "flag": "1",
  42. & e' W  ?0 g/ |* w3 G) U0 Y            "pic_path": (basename(file_path), f.read()),
  43. & y/ o! l* i: J) U  ]' L8 V        }+ W+ N# r7 T- B* f$ X
  44.         encode_data = encode_multipart_formdata(file)\" F- R% I0 L7 c# }

  45. ; M  u2 M0 M1 J        file_data = encode_data[0]
  46. 4 M1 y* t' e) V2 `9 d' O
  47. . m\" X  u) M8 b\" Z        print(encode_data[1])
  48. $ ~! F, @6 h7 A# @0 q- B6 k/ @$ u/ C# T6 Z8 s
  49.     url = "http://pic.sogou.com/ris_upload"
  50. : B* D+ m6 h+ G1 y    headers_from_data = {
  51. & ]7 }# {  l* D& R+ j6 s        "Content-Type": encode_data[1]
  52. 3 D9 k& \% B0 A+ y    }# q* B6 \# ~' q2 L  }6 G
  53.     response = requests.post(
  54. & p8 t\" X6 q- C        url=url,
  55. 5 `\" u$ [\" C3 ~2 `5 |        headers=headers_from_data,
  56. : [) K( o' l4 B3 G% w        data=file_data,. x8 m$ Y3 l6 S3 Q6 Z
  57.         allow_redirects=False): u2 B# H2 T  e) t% p# P& u/ P
  58.     response_text = response.text
  59. 6 V2 v. d: ~% |; m    start = response_text.find("<a href=\"")# i% P) ~, b% F# y, K& ~- l( P; t\" P
  60.     start = getmidstring(response_text, "<a href=\"", "\">")
  61.   Y' ?, P1 P) ^0 S% J    print("相似图片:" + start)
  62. $ [1 D1 W4 k4 o$ d% t6 J
  63. , t$ K5 z9 S) ^# L- }: w& P7 K    start = getTextLeft(start, "&oname=")3 K+ m5 o& k! N, Q& _
  64.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  65. - K2 w2 @2 Z, X; Q, @; _
  66. 6 q! A1 S% q% Y    start = requests.get(start).json()
  67. 6 `9 v% I8 {' Q    print("上传的图片:" + start['query'])
  68. $ _3 S* r( |8 C; y

0 o/ v4 r- l3 c' l, e) E5 }$ I3 d6 U
" z# O& |; l( K5 W8 y转发自派生社区
. ]: G( T0 e) r" e& I# \
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-7-18 11:01 , Processed in 0.410730 second(s), 55 queries .

回顶部