精易论坛

标题: Python-搜狗post上传图片 [打印本页]

作者: 大司命    时间: 2020-12-11 10:58
标题: Python-搜狗post上传图片
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-

  3. import tkinter as tk
  4. from tkinter import filedialog

  5. import requests
  6. from urllib3 import encode_multipart_formdata

  7. from os.path import basename

  8. from PIL import Image


  9. def getmidstring(html, start_str, end):
  10.     start = html.find(start_str)
  11.     if start >= 0:
  12.         start += len(start_str)
  13.         end = html.find(end, start)
  14.         if end >= 0:
  15.             return html[start:end].strip()


  16. def getTextLeft(html, end):
  17.     start = html.find(end)
  18.     if start >= 0:
  19.         return html[0:start].strip()


  20. root = tk.Tk()
  21. root.withdraw()

  22. filetypes = [(
  23.     '图片文件(*.jpg;*.jpeg;*.gif;*.png;*.bmp)', '*.jpg;*.jpeg;*.gif;*.png;*.bmp')]
  24. file_paths = filedialog.askopenfilenames(filetypes=filetypes)

  25. for file_path in file_paths:
  26.     print(file_path)

  27.     im = Image.open(file_path)
  28.     print("image/" + im.format.lower())

  29.     with open(file_path, mode="rb") as f:
  30.         file = {
  31.             "flag": "1",
  32.             "pic_path": (basename(file_path), f.read()),
  33.         }
  34.         encode_data = encode_multipart_formdata(file)

  35.         file_data = encode_data[0]

  36.         print(encode_data[1])

  37.     url = "http://pic.sogou.com/ris_upload"
  38.     headers_from_data = {
  39.         "Content-Type": encode_data[1]
  40.     }
  41.     response = requests.post(
  42.         url=url,
  43.         headers=headers_from_data,
  44.         data=file_data,
  45.         allow_redirects=False)
  46.     response_text = response.text
  47.     start = response_text.find("<a href="")
  48.     start = getmidstring(response_text, "<a href="", "">")
  49.     print("相似图片:" + start)

  50.     start = getTextLeft(start, "&oname=")
  51.     start = start + "&flag=1&reqType=ajax&st=12&reqFrom=result"

  52.     start = requests.get(start).json()
  53.     print("上传的图片:" + start['query'])
复制代码

Python-搜狗post上传图片
https://bbs.266.la/forum.php?mod=viewthread&tid=240
(出处: 派生社区)


作者: xxins    时间: 2021-4-9 02:34
虽然看不懂 但是很赞
作者: 子鱼墨墨    时间: 2021-4-25 21:55
虽然看不懂 但是很赞




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4