吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2775|回复: 34
收起左侧

[Python 转载] 百家号变免费图床

[复制链接]
wkdxz 发表于 2024-5-19 17:00
本帖最后由 wkdxz 于 2024-6-13 16:12 编辑

思路来自这里@风之暇想 斑竹的帖子中:斑竹自配的百家号图床。
把斑竹的配置文件使用文本软件打开后分析测试了下,感觉可以使用python实现图床功能,所以就拿来改代码了。

界面如下:
Snipaste_165346.jpg


代码: 不知道把url编码后是否违规。  

不发URL也没法实现图床功能,如果违规,麻烦斑竹告知下,我改

[Python] 纯文本查看 复制代码
import tkinter as tk
from tkinter import filedialog
import requests
import urllib3
import pyperclip
import base64

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)


def upload_image():
    url = "aHR0cHM6Ly9iYWlqaWFoYW8uYmFpZHUuY29tL3BjdWkvcGljdHVyZS91cGxvYWQ="
    url = base64.b64decode(url).decode("utf-8")
    print(url)
    custom_cookie = cookie_entry.get(
        "1.0", tk.END
    ).strip() 
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.30",
        "Cookie": custom_cookie,
    }
    file_path = filedialog.askopenfilename()
    files = {"media": open(file_path, "rb")}
    response = requests.post(url, headers=headers, files=files)

    if response.status_code == 200:
        data = response.json()
        url = data["ret"]["https_url"]
        result_label.config(text="上传成功,图片链接为:" + url)
        
        copy_button.config(state=tk.NORMAL)  
        global success_url
        success_url = url  
    else:
        result_label.config(text="上传失败,错误信息为:" + response.text)


def copy_url_to_clipboard():
    pyperclip.copy(success_url)  
    result_label.config(text="已复制到剪贴板")


# 创建GUI窗口
root = tk.Tk()
root.title("百家号变图床 - By wkdxz")

root.geometry("370x150") 

window_width = root.winfo_reqwidth()
window_height = root.winfo_reqheight()
position_right = int(root.winfo_screenwidth() / 2 - window_width / 2)
position_down = int(root.winfo_screenheight() / 2 - window_height / 2)
root.geometry("+{}+{}".format(position_right, position_down))

cookie_label = tk.Label(
    root, text="输入Cookie(登录百家号,然后按F12拿Cookie,不会就搜索)"
)
cookie_label.pack()

cookie_entry = tk.Text(root, height=4, width=50)
cookie_entry.pack()

button_frame = tk.Frame(root)
button_frame.pack()

upload_button = tk.Button(button_frame, text="上传图片", command=upload_image)
upload_button.pack(side=tk.LEFT, padx=10, pady=5)

copy_button = tk.Button(
    button_frame, text="复制URL", command=copy_url_to_clipboard, state=tk.DISABLED
)  # 初始状态为禁用
copy_button.pack(side=tk.LEFT, padx=10, pady=5)

result_label = tk.Label(root, text="")
result_label.pack()

root.mainloop()

免费评分

参与人数 5吾爱币 +10 热心值 +5 收起 理由
junjia215 + 1 + 1 谢谢@Thanks!
Natu + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yanglinman + 1 谢谢@Thanks!
一场荒唐半生梦 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zhu2023 发表于 2024-6-13 17:26
zhu2023 发表于 2024-6-13 17:26
运行报错,line 29, in upload_image
    url = data["ret"]["https_url"]
KeyError: 'ret'

用GPT,说是:“这个错误是由于在响应的JSON数据中没有找到"ret"键引起的。根据代码的逻辑,它期望在响应的JSON数据中有一个名为"ret"的键,并且该键对应的值是一个字典,其中包含"https_url"键来获取上传成功后的图片链接。

请确保上传图片后,服务器返回的JSON数据中包含"ret"键,并且该键对应的值是一个包含"https_url"键的字典。如果服务器返回的JSON数据结构不同,你需要根据实际情况修改代码以正确获取图片链接。

如果你需要进一步的帮助,请提供服务器返回的JSON数据,我将尽力帮助你解决问题。”
RKCN 发表于 2024-5-23 22:07
本帖最后由 RKCN 于 2024-5-23 22:10 编辑

在 macosx 中,执行之后,控件(组件)显示效果要如何调整?我这边打开之后,都是纯白的,也看不到按钮上的文字。请指点一下。

pjlxfzhmm 发表于 2024-5-19 17:17
一场荒唐半生梦 发表于 2024-5-19 17:21
多谢分享
wuliwuju 发表于 2024-5-19 17:22
百度的东西,容易over啊!
 楼主| wkdxz 发表于 2024-5-19 17:34
wuliwuju 发表于 2024-5-19 17:22
百度的东西,容易over啊!

目前还能用,且用且珍惜
spykid 发表于 2024-5-19 17:39
支持楼主!先下了,晚点试试看
27149 发表于 2024-5-19 17:42
感谢楼主制作、分享!!
zhuofeng41 发表于 2024-5-19 17:45
谢谢楼主制作、分享!
下载试用一下
dpa4099 发表于 2024-5-19 18:30
这个可以的
rxxcy 发表于 2024-5-19 18:41
百度的东西感觉不长
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 09:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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