QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

! H! f+ p9 }) Q
  1. #!/usr/bin/python
  2. 1 n# m2 a$ [6 c5 o8 L/ d. y$ n/ D# -*- coding: utf-8 -*-
  3. 6 {; N; l. s0 m) a0 n; w: g  K  F
  4. import tkinter as tk1 h1 t. L1 i* M
  5. from tkinter import filedialog6 K) Q) N2 m$ c, x0 K. N
  6. / N4 \2 `+ A\" I/ w
  7. import requests
  8. 9 N/ l2 F5 W- Z: _from urllib3 import encode_multipart_formdata
  9. ' Z; @+ Q! s7 g$ V
  10. 1 L: ?/ e5 j1 p# Efrom os.path import basename
  11. \" O$ h! w' i& W1 r\" J7 M
  12. ! ]. A  |4 E3 Dfrom PIL import Image
  13. ; n; r  Y6 c- n( K; c- y
  14. - R- }0 N0 i5 t* o. ?: J0 p0 K3 ^1 D+ Q& X/ F0 O' W
  15. def getmidstring(html, start_str, end):
  16. ' J; n' t& C  x1 Y2 ^4 ]8 h    start = html.find(start_str)
  17. 4 D+ x+ M; X0 b! L- @    if start >= 0:
  18. 9 P) c6 p/ E: v9 S\" Y0 q        start += len(start_str)
  19. 7 y$ t& B\" k4 |4 v  |- p8 T        end = html.find(end, start)
  20. 6 P6 o2 q: T$ G1 J, _$ C        if end >= 0:9 W- f' d0 X, |; B
  21.             return html[start:end].strip()) y; t! D\" Z' q) p) \( |! e' w# l

  22. 6 u: g8 T$ S0 \% X* B& m) i
  23.   Y, q# g, a% _\" g- Jdef getTextLeft(html, end):, U8 V5 a) R\" v( l+ X
  24.     start = html.find(end)4 Y# x. H% Y9 ~4 b( z0 `5 N7 Q
  25.     if start >= 0:7 {$ K0 X0 r3 k0 C  C
  26.         return html[0:start].strip()6 B6 t& T\" ?+ w8 J; D  I- u

  27. # B+ q& O/ E/ H, C8 x- C( E' u* M: R# E3 l' w( q/ Q* P; t( `: M% A
  28. root = tk.Tk()8 ~! z  H\" c9 ~1 @$ e
  29. root.withdraw()4 [8 I2 \\" v4 w3 w/ u% U

  30. / _\" X9 }6 W! i9 Mfiletypes = [(9 q! w5 C6 B1 ~6 m. K7 e; u  W
  31.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  32. 1 ]( R; T; |! y* z; K4 Bfile_paths = filedialog.askopenfilenames(filetypes=filetypes)
  33. / S6 M0 [5 t% E
  34. ' p4 a, }\" I/ R. g' }  z* D: Ifor file_path in file_paths:4 f+ b% L: b; {5 G( K
  35.     print(file_path)1 }! Z* h9 x  @: Z2 z$ ?
  36. . c. F0 `3 F* y  ^( k( a% _: }
  37.     im = Image.open(file_path)
  38. 9 Z\" i: N# C; W, b) c% P    print("image/" + im.format.lower())
  39. ) z7 A- E$ C: I
  40. . z  X- i; A) e$ L    with open(file_path, mode="rb") as f:' |0 X+ p; m# j& q8 K3 J
  41.         file = {; C% M3 N( M+ j: J
  42.             "flag": "1",+ P: M' U' ]2 a5 ^/ ~2 e. n( r: W
  43.             "pic_path": (basename(file_path), f.read()),2 ]3 U& c- S2 e
  44.         }
  45. , k) z0 o( g& P+ b1 e        encode_data = encode_multipart_formdata(file)( @5 }/ J' u0 ]' R% m

  46. 5 e5 G\" m! ?5 z0 H$ j        file_data = encode_data[0]
  47. % ~. ~, N$ @4 x, N/ Q: o3 \0 m2 g* \+ b- B. Z6 \$ c
  48.         print(encode_data[1])
  49. 1 V- z/ t' T9 t5 f, J7 Y# m  b& K$ ?6 d2 m2 n4 U! F$ C1 E
  50.     url = "http://pic.sogou.com/ris_upload"
  51. \" p& ?1 K4 A\" q4 f5 Z) n    headers_from_data = {4 J* q6 s# t- c
  52.         "Content-Type": encode_data[1]
  53. 7 K! O6 }9 c4 I2 _    }
  54. ! W- O$ `6 z) Z3 f    response = requests.post(
  55.   R$ n5 d3 U* y- f        url=url,
  56. 5 j( }: X! B( }+ q$ E, X        headers=headers_from_data,  v8 Z1 {5 x! ^. @+ R: e, O- [# L
  57.         data=file_data,; A( m+ ]7 J3 E
  58.         allow_redirects=False)
  59. ' B+ P3 o' C/ R9 O8 n    response_text = response.text2 Z, L/ P7 v% u; U2 c4 L  |$ N
  60.     start = response_text.find("<a href=\"")/ z# F8 v7 n  ~4 e( s
  61.     start = getmidstring(response_text, "<a href=\"", "\">")0 d- @7 F# R! \) s) T
  62.     print("相似图片:" + start)6 @, g9 M, @8 A1 j
  63. : W& b$ y2 |* j/ v
  64.     start = getTextLeft(start, "&oname=")
  65. , c1 O2 w2 P9 \\" @    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result". D  Z$ x8 A: B  P* `+ L6 y

  66. ! l\" i( n% _# r# I    start = requests.get(start).json()
  67. % M' N' C2 T( k' n, G/ p+ x    print("上传的图片:" + start['query'])7 C, Y  V- s& h/ r5 j1 f
8 F2 h! D) q7 h# R9 [, c# v* n' ?
' O: |# u4 r& w4 i8 w6 b# K8 }* E, T
转发自派生社区
) I  U+ m9 k- g: w4 q! L% V
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 12:12 , Processed in 0.420648 second(s), 49 queries .

回顶部