开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 30003|回复: 2
收起左侧

[源码分享] Python-搜狗post上传图片

[复制链接]

发表于 2020-12-11 10:58:48 | 显示全部楼层 |阅读模式   广东省广州市
  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
(出处: 派生社区)

结帖率:88% (7/8)

签到天数: 1 天

发表于 2021-4-25 21:55:29 | 显示全部楼层   山东省济南市
虽然看不懂 但是很赞
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 4 天

发表于 2021-4-9 02:34:08 | 显示全部楼层   江苏省南通市
虽然看不懂 但是很赞
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表