QQ登录

只需要一步,快速开始

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

Python-搜狗post上传图片

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

7

主题

3

听众

10

积分

升级  5.26%

该用户从未签到

自我介绍
我本名为我,那就是我
跳转到指定楼层
1#
发表于 2021-1-11 08:42 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
* z" J9 K( Y: a/ n4 G
  1. #!/usr/bin/python
  2. + t7 u- a$ Z  g: T; ]+ r# -*- coding: utf-8 -*-
  3. % O9 S7 v  Q2 ]: r% h! \' {2 w  U* R6 o' o2 U, |
  4. import tkinter as tk& O& i& ^' ^5 \5 y2 Q\" g& c3 x5 z
  5. from tkinter import filedialog
  6. & y8 E\" d6 ^9 B2 E2 ]  C. k0 j/ U/ V$ U- a. X$ J
  7. import requests9 E) H! M  `9 }
  8. from urllib3 import encode_multipart_formdata
  9. * F( @) H2 V( j- n% c
  10. 9 Q1 ]3 N4 n) |% _7 z+ i% vfrom os.path import basename
  11. * p, j  q; N+ j( T: ~% E# J4 s8 G2 G
  12. from PIL import Image
  13. % d. ]7 n, X+ n( ]& v1 r* E, o6 V* Y. ?) G. L

  14. 6 o$ H/ v7 A9 g8 P1 s. ^, idef getmidstring(html, start_str, end):* h2 @% l/ H* w9 R
  15.     start = html.find(start_str)
  16. & t7 j; ?% ^8 i' R% `\" c0 |! g; ^    if start >= 0:* j2 J& j5 t7 ^4 N7 v
  17.         start += len(start_str)
  18. 0 H: H; q& Y6 s- ]( @0 U        end = html.find(end, start)- U8 [' H4 X* z\" v& b
  19.         if end >= 0:
  20. , X5 ?& f9 r\" W) v' A: N            return html[start:end].strip(): U  _6 e4 Y7 Z( d& f( ^
  21. # p) a# g& v, Z5 p( u) `9 p% z
  22. ! F: j' @4 Q4 T+ l
  23. def getTextLeft(html, end):  b3 [* w. M' Z: [/ B% D
  24.     start = html.find(end), D; b  X* E' d6 e, [& P6 m
  25.     if start >= 0:7 ~8 U6 f2 s! X\" u  f+ y. E. h0 e* s1 E
  26.         return html[0:start].strip()
  27. & b# i% G) I/ x; F4 T0 N4 {( N' r9 X' Z' ~8 Y: v; b! h3 `
  28. ' C) q# C- [4 _0 B
  29. root = tk.Tk()3 W5 w2 E\" t/ i8 l4 U
  30. root.withdraw()' l) B' ^& _$ t3 f3 ?
  31. , Y3 N+ f) S& e! o; m' L
  32. filetypes = [(
  33. 1 {6 K; ^) s2 \( G: ~    '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]* y+ b5 s) V( S- ^6 F
  34. file_paths = filedialog.askopenfilenames(filetypes=filetypes)
  35. $ A1 }6 ~\" v, d\" q7 }& ?  [0 A
  36. % e- S+ C: _# [for file_path in file_paths:/ G( c7 U4 q- {$ q' G$ d
  37.     print(file_path)
  38. # U# G, n( z- W6 p' |* K' c/ F0 [9 U# `! O$ {5 b' u
  39.     im = Image.open(file_path)# v9 ~7 i$ u9 Z8 I/ i& Z9 [
  40.     print("image/" + im.format.lower())
  41. 0 @4 a; o6 \2 d7 @; B\" G# `' N- X+ X. \
  42.     with open(file_path, mode="rb") as f:7 }3 X# x! R/ P% V1 k
  43.         file = {
  44. & m9 q6 {) f- T3 P7 e\" M* O& O            "flag": "1",3 f5 c9 W5 K) Y2 R% s\" L) ~
  45.             "pic_path": (basename(file_path), f.read()),
  46. 1 x2 ^, j9 l- v& u0 S) U# i        }* Z) k2 W\" @, `, ?5 Z
  47.         encode_data = encode_multipart_formdata(file)2 |. Q% L7 ~. i2 a- Z
  48. ( l9 C. m/ \  c5 M6 u( p
  49.         file_data = encode_data[0]
  50. 9 ]- c' Y1 q& s( g! i+ ~. _2 y$ B% l8 D! e
  51.         print(encode_data[1])\" g7 n  X% j) E, O- l# d5 n
  52. 5 x* P! c3 ]: |% K5 R& m5 d( {! R
  53.     url = "http://pic.sogou.com/ris_upload"
  54. 9 S% ?+ C! a7 {/ Y1 L! _    headers_from_data = {
  55. 8 X8 ^- S) \% k; s/ p% P        "Content-Type": encode_data[1]& h8 \- I. y8 a\" p0 t; J7 ~* j
  56.     }5 n. X; @( }/ a4 O, o
  57.     response = requests.post(3 M: v\" E. J' g: j+ l
  58.         url=url,
  59. 0 d( d. V: e, D\" x  y        headers=headers_from_data,
  60. + U1 E. M: w' g& \        data=file_data,$ c, D  y$ r$ X/ z
  61.         allow_redirects=False)
  62. + {& M' C& Y& ~    response_text = response.text
  63. / h9 P3 L# l6 o8 _5 k* Z9 D# A$ K3 `: M    start = response_text.find("<a href=\"")6 k: D( v  N, ~  m6 t) H6 z2 x
  64.     start = getmidstring(response_text, "<a href=\"", "\">")
  65. 5 u7 I+ l7 D, n. u    print("相似图片:" + start)
  66. # @1 I6 a( F1 E# s* \7 }4 X- N5 |1 {3 E* z; @! d+ ~. z3 y
  67.     start = getTextLeft(start, "&oname=")
  68. / ?* @& M# C1 o    start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"$ n6 x- |8 V. V+ D6 j
  69. 6 H+ G7 g6 f# f2 j( d
  70.     start = requests.get(start).json()% s\" a* q3 C& w& g3 N7 Z/ W
  71.     print("上传的图片:" + start['query'])
  72. 7 L  y2 D2 o# F. s4 L
4 r9 L3 |1 F" g& _1 \
& N' h6 j- h8 |. {- \+ u6 A8 a+ s
转发自派生社区( `7 [' z& i( W. b9 Q  u8 h; {, h% A
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 14:57 , Processed in 0.393139 second(s), 50 queries .

回顶部