QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

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

# {2 A$ M; k  c3 u
  1. #!/usr/bin/python
  2. $ Q  A  Y- s) R- k. g8 d# -*- coding: utf-8 -*-
  3. , T4 W\" A+ i$ W( H. U\" |3 f3 S; C9 I# w; s
  4. import tkinter as tk
  5. / Z  B  [: `5 d, O; s, o5 Bfrom tkinter import filedialog
  6. , ]* w2 p# r: F9 C. n/ R# b$ f4 C, ]  B( j: y, L
  7. import requests& C: P1 c5 j: f  \' [9 @
  8. from urllib3 import encode_multipart_formdata, R\" L( a# U& X4 s\" O6 h
  9. / i1 G/ _6 o, s0 K0 I) h9 r1 {
  10. from os.path import basename
  11. ' s, u  p- O# ]3 m) Y
  12. 2 h/ m6 ^/ K6 ]% }/ {from PIL import Image1 j$ e/ ~  v, U2 g7 ?% m
  13. ( M  S  u0 ]* g8 z; U

  14. \" ~: o- v, |  P; q) j) J# Pdef getmidstring(html, start_str, end):* h8 G; ]. c2 s' B& z% p/ T
  15.     start = html.find(start_str)
  16. $ e6 H3 Q9 `: O9 O: J    if start >= 0:) q& u! R6 f# n  f3 f$ z\" \
  17.         start += len(start_str)
  18. . J/ ?' @7 A1 y$ G: J1 |        end = html.find(end, start)
  19. 8 [0 @\" C# d' D# j/ i        if end >= 0:+ q- R2 Q- g2 c\" k, \
  20.             return html[start:end].strip()
  21. \" u6 ~3 s. }# \) F, s+ D. r
  22. 4 T\" o1 S3 H6 Z: U3 b8 N9 Y! f
  23. , K7 d0 l; T2 \* g# ?+ {def getTextLeft(html, end):
  24. ) I# N, b4 z3 w7 l6 e    start = html.find(end)
  25. 2 W' R7 g- I( H2 q9 `' `    if start >= 0:: b\" m\" {8 E' b: x3 b6 p7 u
  26.         return html[0:start].strip(). ?9 d6 V; a* R4 M- C5 {) h
  27. 3 a' K+ h1 K, i  T( Z* ]

  28. : H\" X9 q: U2 o2 B; o; ~root = tk.Tk()
  29. ) t! ^+ S$ h: k: p5 |9 ]7 proot.withdraw()
  30. + N! Y' C2 ]( e- w$ H
  31.   R6 w% E  F+ ]( I9 f, Kfiletypes = [(
  32. \" J4 p0 r( W, T* i0 f. \5 U3 y    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]7 g  B2 x: t  `  y9 F& P0 y
  33. file_paths = filedialog.askopenfilenames(filetypes=filetypes)
  34. ) P: t' v1 [6 j; l' ?9 T3 r# c; r( S  m7 C# N, p7 C
  35. for file_path in file_paths:4 F7 [5 f: b3 v. D1 I  R2 ?9 [: m
  36.     print(file_path)
  37. , ?; S6 j  S3 H/ b# q7 s/ K  c9 U0 n- @5 A8 {\" h6 \3 k
  38.     im = Image.open(file_path)+ H' i6 J5 u1 r. J2 N$ A- W9 V- V
  39.     print("image/" + im.format.lower())# q  \; @, M0 Y: \3 V1 F/ k6 j) g

  40. 9 N\" r$ w3 Z9 y, B% t- J! \    with open(file_path, mode="rb") as f:7 i' K1 n4 [! M6 h& r
  41.         file = {
  42. . B$ B/ `8 W% M5 B' }+ c\" n: ?            "flag": "1",, T# B, B. B\" i: |- {1 J
  43.             "pic_path": (basename(file_path), f.read()),
  44. ' c$ ~( N; w0 Y3 i. j. L        }9 }# ~\" z; T1 q0 j; w
  45.         encode_data = encode_multipart_formdata(file)
  46. + e\" P7 Z! Q. G6 ~2 f$ V. E7 Z\" k8 C6 G: a
  47.         file_data = encode_data[0]& L$ o. R* H: U, P\" A; L5 S
  48. ' k2 f1 U$ y. ?* i* k
  49.         print(encode_data[1])
  50. ; U( t5 P2 L( g4 ]) B! x, W
  51. 6 J& k3 p) \7 S/ a    url = "http://pic.sogou.com/ris_upload"5 T8 C% [. _: x& z; ~. E! p% ^% o
  52.     headers_from_data = {( ^\" C4 X' B2 s  R* _7 W9 ?
  53.         "Content-Type": encode_data[1]
  54. 6 l  z5 T\" O/ O. z1 F    }
  55. $ Q: I\" K! o& Q3 I  r& e* q- ]    response = requests.post(
  56. $ c) z* p: ]2 O        url=url,+ i6 C% @! G8 V2 {8 d8 C( a+ Y
  57.         headers=headers_from_data,
  58. + Z7 M; U# U! P, a2 H- B% k# F9 E        data=file_data,
  59. 8 H: E0 e2 b( M\" g1 Q7 [2 X1 m1 W        allow_redirects=False)\" S# f( R+ B3 H2 I' x* r9 J8 B
  60.     response_text = response.text
  61. + t+ P- y+ {- i0 u/ H; F    start = response_text.find("<a href=\"")( L\" y. f& F% D& q\" F, \
  62.     start = getmidstring(response_text, "<a href=\"", "\">")0 o: j5 q, P/ T
  63.     print("相似图片:" + start)
  64. 3 ]! @5 N3 w6 I* m! M5 I
  65. 2 t5 d% F. @0 [( M; M8 J( ?$ B    start = getTextLeft(start, "&oname=")7 m* a7 c8 i/ L* H* e, a
  66.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result": l4 a% h! e  S! e  ^

  67.   o\" G7 W% D- @+ S( l* g# \    start = requests.get(start).json()
  68. . E4 j$ O6 v& m    print("上传的图片:" + start['query'])
  69. 5 Z6 s% o1 S  V4 T
- J. x4 L  j# I0 {$ k! r% G

$ \' l. p. r9 R% E% L转发自派生社区0 t! f1 b* f3 g/ g
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 07:26 , Processed in 0.349464 second(s), 50 queries .

回顶部