QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

# z" I2 A% ?7 Q) E# n5 i1 Z( f1 y2 r, j
  1. #!/usr/bin/python- W' R, L  n+ J
  2. # -*- coding: utf-8 -*-
  3. + U, G6 p0 ~2 T7 A& z8 X1 f
  4. 3 d$ p+ R; v% T' G9 qimport tkinter as tk
  5. , k$ r( W5 b( U! e' t! p& [, G: Rfrom tkinter import filedialog
  6. # {1 h1 ?+ F7 k5 S+ }( J. a+ p- C2 ]; n* L8 X  x
  7. import requests
  8. ) k% z9 d7 `( h2 h9 Gfrom urllib3 import encode_multipart_formdata7 R8 c7 n& I3 Q6 X, w4 P, s2 A

  9. 5 K2 R2 `2 s# [; o. Dfrom os.path import basename% |  n5 J) p+ F
  10. & A+ p0 n7 r1 n& [8 }' H5 \\" j+ G3 B
  11. from PIL import Image) s9 Y/ N% T  F- f+ ^/ m
  12. 0 ?* U  C3 }) T$ L* C4 o6 f

  13. 8 `( t7 m8 g0 x: I- x: V0 ldef getmidstring(html, start_str, end):
  14. + |1 P\" H/ ?! d! i( B: _6 }7 p    start = html.find(start_str)3 z, ]4 F; P\" g\" k\" C
  15.     if start >= 0:: j' d% g' Y. I. G- j$ q
  16.         start += len(start_str)7 S/ K; ~5 R6 K+ W
  17.         end = html.find(end, start)3 |9 u' ]3 l' X# q
  18.         if end >= 0:
  19. 6 m( z+ x0 B/ H: r+ |/ Y            return html[start:end].strip()! M- J5 O( Z6 }3 o) C: Y3 B7 J

  20. + I4 i5 n: A- }! M& z/ E. v) M* e. g2 Q
  21. def getTextLeft(html, end):9 V/ j+ O0 {& K0 t# ^
  22.     start = html.find(end)8 G  X/ D2 \; E
  23.     if start >= 0:2 S- f& u. d2 N
  24.         return html[0:start].strip()
  25. ) [; N$ U, z* v! S& Y  t$ t' @2 o\" ]+ i- R' A& J

  26. 6 y* o! p6 ^% @: ]& R9 Mroot = tk.Tk()' P$ e7 C7 s, x# |0 ~2 B
  27. root.withdraw()5 @! r5 }/ S4 ^

  28. 8 G& q) y+ X8 r( g! xfiletypes = [(
  29. 2 L% K) r$ Q4 x    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]( l: E2 Y3 T0 c/ _* N* D/ a9 Y
  30. file_paths = filedialog.askopenfilenames(filetypes=filetypes)7 N/ o* e' o# ^- d7 Z

  31. 8 w\" L! O( J\" ?1 F0 @# Y7 }for file_path in file_paths:& m( {5 k) [, ~% t7 H; }/ j& i
  32.     print(file_path)
  33. : h* d2 k6 \6 N  ?& V$ F
  34.   B+ T2 a& U  j$ B2 o- l. r    im = Image.open(file_path)( I7 k0 v, w& u, G: R* y: {/ l
  35.     print("image/" + im.format.lower())
  36. 5 _; q6 Z9 K& D, j) U) \2 O/ v* N! M0 X
  37.     with open(file_path, mode="rb") as f:$ l7 d3 U' o\" ?. Y' @
  38.         file = {# e- z* K; ]7 t. u% c$ N
  39.             "flag": "1",
  40. \" v, G  `( i5 I1 E+ j            "pic_path": (basename(file_path), f.read()),
  41. # H\" s) q0 D( N9 z. u$ L1 Y        }
  42. % r) W& n3 M* V6 d        encode_data = encode_multipart_formdata(file)
  43.   p7 g( T6 X4 i7 ^7 T2 _9 ^5 U6 e+ f. N/ N, b' [$ C
  44.         file_data = encode_data[0]+ C1 `& N6 i4 M; B/ X0 Y
  45. 9 x' Q8 y/ G: p
  46.         print(encode_data[1])' f! D4 A5 e* _/ |. m
  47. & ]1 Y% S1 I4 O1 `\" b1 [  A
  48.     url = "http://pic.sogou.com/ris_upload"
  49. 0 o  L' H, ?1 Z+ \# W0 t* b& ?* c: j    headers_from_data = {
  50. , k9 E- e# f1 F- s6 J, E        "Content-Type": encode_data[1]
  51. - p; L# G' ?$ }' {. q    }& _0 v! g; a4 o- U+ \1 `
  52.     response = requests.post(
  53. & K2 _- W4 ]9 h/ M- F/ I        url=url,
  54. : ~; _/ _  r, {1 z; Q  }        headers=headers_from_data,
  55. , y8 O3 d. l7 B5 l, a6 k; A        data=file_data,
  56. 3 b\" x5 w+ _& L0 Q        allow_redirects=False)6 P8 r& Z. |/ ]2 v# ^  {
  57.     response_text = response.text
  58. 7 B# n* |( A/ y    start = response_text.find("<a href=\"")
  59.   n, Y2 Z: z\" P* a4 B3 B    start = getmidstring(response_text, "<a href=\"", "\">")
  60. 0 Z& _! L: h: B7 m4 {    print("相似图片:" + start)$ ]1 i  {% F: v+ C  Q4 h
  61. 5 g9 x5 K& V7 C- H, W
  62.     start = getTextLeft(start, "&oname=")
  63. & c5 h4 o# C4 X: s    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"
  64. + ?2 j% K& }2 M* C0 ~9 z
  65. ' p: i! F6 \- d  E9 r& R& G6 m6 W    start = requests.get(start).json()& N: Z: v4 P) S: d
  66.     print("上传的图片:" + start['query'])7 v/ u! H# f! h
, `2 ]  U3 F) f& m0 }* a. e
" ]" r# S8 b& N9 i2 ~3 m* v$ y2 m
转发自派生社区
6 t! _4 V. ^/ z; |' K
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-19 18:56 , Processed in 0.417611 second(s), 50 queries .

回顶部