QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

( |7 d. t4 Y9 }7 t5 N7 f. E8 `
  1. #!/usr/bin/python
  2. 7 H3 U  p+ b' c* P! Q' x# -*- coding: utf-8 -*-
  3. 8 z! L2 u) ^) E8 d: l
  4.   R/ Z6 ?& j- o\" Zimport tkinter as tk( V# l' W! w' D3 I: `8 X
  5. from tkinter import filedialog. G7 G: Z# I  O1 p
  6. 8 b- r5 a* M9 f2 p/ V: u' |
  7. import requests
  8. 5 H+ C/ {0 O  b1 e7 F) M( Gfrom urllib3 import encode_multipart_formdata2 x; o: N1 B/ R+ T* o# e
  9. + e1 V9 X0 {7 Y\" p. d
  10. from os.path import basename
  11. # @& Z+ Z! J8 T- ]
  12. ! j$ D2 }- }' ^from PIL import Image\" ~0 i2 y0 L6 k7 M5 I$ p1 h5 l/ M) N
  13. / Y  O, e; M# M+ |: e5 X

  14. # c- i5 b3 {& f& {. Edef getmidstring(html, start_str, end):
  15. , B4 ^7 N  u- N5 t' F$ J    start = html.find(start_str)\" S* A8 U4 N2 s- k3 ]% s
  16.     if start >= 0:5 R6 P& u1 l* {: X  W2 \
  17.         start += len(start_str)# a* x& ~; V, ^% X  Z
  18.         end = html.find(end, start)
  19. 5 n3 X; g- L9 v. ]- [        if end >= 0:& x7 B$ D5 R! w. b/ d
  20.             return html[start:end].strip()
  21. \" ]! o/ m0 A/ K; @$ n9 H\" q% j) ]. K
  22. 9 m\" I+ @9 |) k5 O. J0 J4 G
  23. def getTextLeft(html, end):8 H9 Q7 s. a1 k* W: Z- ?
  24.     start = html.find(end)1 f! D) h4 ?\" t
  25.     if start >= 0:* u+ M: `5 v: f$ _3 T# c
  26.         return html[0:start].strip()+ C4 @5 ^* ~5 ]! L7 i  c; d! [9 l

  27. \" j/ G( H2 v; _& F) h$ G& @9 Z) c! `9 l2 ~7 O, O7 Z
  28. root = tk.Tk()
  29. + ]4 `0 D. m, h\" M5 [. F0 ~6 xroot.withdraw()
  30. # y* O\" `$ \9 D\" l0 W
  31. 5 }, V5 a\" d! c, \7 \filetypes = [(' I% Z. z8 M2 M3 [8 u4 U9 o! t
  32.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  33. 7 h- @( u9 W% Afile_paths = filedialog.askopenfilenames(filetypes=filetypes)5 O& A1 E4 D+ a# Q5 z0 }1 G1 t, A
  34. ) h* E% e% P& t0 v& c! h
  35. for file_path in file_paths:8 ^3 T5 m; B/ ?6 _& \
  36.     print(file_path)6 {$ e4 c/ H6 w( q/ s\" J

  37. 5 U' r\" t/ |8 W* A    im = Image.open(file_path)5 L6 r7 W! n0 F3 j& }\" q. h6 W
  38.     print("image/" + im.format.lower())
  39. 6 Q' z$ G. x: C\" j' P/ {3 S6 _; b2 Q. y' @
  40.     with open(file_path, mode="rb") as f:
  41. ) L2 f# {3 |2 Y: _! q# `        file = {
  42. 7 o& ]. y4 Y2 h4 r            "flag": "1",* y7 x( r$ W6 w# R$ F% H0 `
  43.             "pic_path": (basename(file_path), f.read()),! E' [3 H. r( x
  44.         }
  45. 6 {; ]/ c% q8 L5 g% r        encode_data = encode_multipart_formdata(file)
  46. $ Y; s' R* }% v$ C/ |
  47. / F- ~* T3 T( W, X# i        file_data = encode_data[0]- X3 u9 s+ w+ K
  48. 7 a  C5 |0 |; S; v6 R* M
  49.         print(encode_data[1])
  50.   c$ U4 N1 G7 m/ K
  51.   p5 R; J\" f* M$ g- s    url = "http://pic.sogou.com/ris_upload", r, x\" k6 Q$ \. D; G
  52.     headers_from_data = {) q1 b8 |3 {) F% u9 g: k. c* n; c
  53.         "Content-Type": encode_data[1]: I3 P; {* W* X* w
  54.     }
  55. + F1 T3 q: g& m6 x! w( P) W    response = requests.post(9 X4 ~$ c2 B; K3 D' B
  56.         url=url,
  57. 0 P& b3 S\" \\" L% k3 ^- E$ W, P        headers=headers_from_data,- _2 s+ Q( ^! p; }) a
  58.         data=file_data,- c9 H% C5 q7 E
  59.         allow_redirects=False)
  60. % l- ^  E, n7 G! j$ i3 D/ t    response_text = response.text0 ]) K$ b* _# ]\" c9 ^: @; j
  61.     start = response_text.find("<a href=\"")
  62. \" j5 F# o9 K; Q5 x  `  A. Z    start = getmidstring(response_text, "<a href=\"", "\">")
  63. 9 b: M3 S8 D  U( |. @3 G( Z2 Q/ Q    print("相似图片:" + start)\" W& s8 Y! @: N9 H+ l
  64. 4 d( `7 U  v& o
  65.     start = getTextLeft(start, "&oname=")7 f% Y% D2 F3 t  D
  66.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"' q' u. q6 s1 A$ g

  67. 2 J, e5 M4 N6 x# x7 a1 s    start = requests.get(start).json()9 E# I) W2 q& O  E/ I
  68.     print("上传的图片:" + start['query'])
  69. + l; ^* Z' A2 Q2 u5 l2 X# g! k3 {3 Z

. p' l( p( c# {' _7 `5 W, o8 L( P( t1 {- i0 ~' j
转发自派生社区" e1 R; t& o" N
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-21 05:43 , Processed in 0.301835 second(s), 50 queries .

回顶部