小小的下载软件公众号文章~~图片~~下载器

查看 73|回复 9
作者:ihhz   
找小孩的资料发现公众号里的资料挺好的,做了个的快速的下载公众号文章里的图片的小小工具~~
链接: https://pan.baidu.com/s/1NuAEAINVxdLEsOuyCR454w?pwd=8gxe 提取码: 8gxe 复制这段内容后打开百度网盘手机App,操作更方便哦
[Asm] 纯文本查看 复制代码import requests
import tkinter
from tkinter import messagebox
import os
import re
import pyperclip
import time
import threading
headers = {
    'authority': 'mp.weixin.qq.com',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36',
}
def getCopyTxet():
    t = pyperclip.paste()
    return t
def imgs(content,headers,title):
    imgs=re.findall('data-src="(.*?)"',content)
    num = 0
    for i in imgs:
        num += 1
        if 'https' in i:
            img_data = requests.get(i,headers=headers)
            print('正在下载图片:'+i)
            try:
                if not os.path.exists('./'+title[:15]):
                    os.mkdir('./'+title[:15])
                with open('./'+title[:15]+'/'+str(num)+'.jpg','wb') as f:
                    f.write(img_data.content)
                ihtit.insert(tkinter.END, '正在下载图片:' + str(i) + '页图片成功~~' + '\n')
            except:
                ihtit.insert(tkinter.END, '正在下载图片出错~~' + '\n')
def copy1():
    last_data = None
    while True:
        data = getCopyTxet()
        if data != last_data:
            last_data = data
            sdata1 = re.search('weixin\\.qq', data)
            if sdata1 != None:
                print(data)
                data = data.replace('&', '&')
                print(data)
                res = requests.get(data, headers=headers)
                content = res.text
                title = re.search(r'var title = \'(.*)\'', content).group(1)
                print(title)
                imgs(content, headers, title)
                messagebox.showinfo('提示', '下载完成~~~请继续复制新文章~~')
                print('下载完成~~~')
                ihtit.delete('1.0','end')
        time.sleep(1)
win = tkinter.Tk()
win.geometry('480x280')
win.title('公众号图片下载器')
ihLabel2=tkinter.Label(win, text='请复制公众号文章连接~~~~自动下载文章的图片~~~!',font=('宋体', '9'))
ihLabel2.place(x=20,y=15,height=19)
ihtit = tkinter.Text(win, font=('宋体', '9'))
ihtit.place(x=15, y=51, width=450, height=183)
t = threading.Thread(target=copy1)
t.start()
win.mainloop()

公众, 文章

wudalang123   

修改这个脚本以适应不同的微信公众号文章链接格式
    更新正则表达式:
        文章链接和图片链接的提取依赖于正则表达式,如果微信公众号的链接格式发生变化,你需要更新相应的正则表达式。
        例如,如果文章链接的域名从 mp.weixin.qq.com 变为其他域名,你需要更新 headers 字典中的 'authority' 键值。
    调整文章内容提取逻辑:
        如果微信公众号的文章内容结构发生变化,你可能需要调整用于提取文章标题和内容的代码。
        例如,如果标题的提取方式从 var title = '(.*)' 变为其他方式,你需要更新 re.search 中的正则表达式。
    调整图片链接提取逻辑:
        如果图片链接的属性从 data-src 变为其他属性,你需要更新 re.findall 中的正则表达式。
以下是一些具体的修改步骤:
1. 更新正则表达式
假设新的链接格式是 https://newdomain.com/weixin/article?id=123,你可以这样更新:
python
headers = {
    'authority': 'newdomain.com',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36',
}
2. 调整文章内容提取逻辑
假设新的标题提取方式是 var newTitle = '(.*)':
python
def imgs(content, headers, title):
    title = re.search(r'var newTitle = \'(.*)\'', content).group(1)
    print(title)
    imgs = re.findall('data-src="(.*?)"', content)
    num = 0
    for i in imgs:
        num += 1
        if 'https' in i:
            img_data = requests.get(i, headers=headers)
            print('正在下载图片:' + i)
            try:
                if not os.path.exists('./' + title[:15]):
                    os.mkdir('./' + title[:15])
                with open('./' + title[:15] + '/' + str(num) + '.jpg', 'wb') as f:
                    f.write(img_data.content)
                ihtit.insert(tkinter.END, '正在下载图片:' + str(i) + '页图片成功~~' + '\n')
            except:
                ihtit.insert(tkinter.END, '正在下载图片出错~~' + '\n')
3. 调整图片链接提取逻辑
假设图片链接的属性从 data-src 变为 data-newsrc:
python
imgs = re.findall('data-newsrc="(.*?)"', content)
完整的修改后的脚本示例:
python
import requests
import tkinter
from tkinter import messagebox
import os
import re
import pyperclip
import time
import threading
headers = {
    'authority': 'newdomain.com',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36',
}
def getCopyTxet():
    t = pyperclip.paste()
    return t
def imgs(content, headers, title):
    imgs = re.findall('data-newsrc="(.*?)"', content)
    num = 0
    for i in imgs:
        num += 1
        if 'https' in i:
            img_data = requests.get(i, headers=headers)
            print('正在下载图片:' + i)
            try:
                if not os.path.exists('./' + title[:15]):
                    os.mkdir('./' + title[:15])
                with open('./' + title[:15] + '/' + str(num) + '.jpg', 'wb') as f:
                    f.write(img_data.content)
                ihtit.insert(tkinter.END, '正在下载图片:' + str(i) + '页图片成功~~' + '\n')
            except:
                ihtit.insert(tkinter.END, '正在下载图片出错~~' + '\n')
def copy1():
    last_data = None
    while True:
        data = getCopyTxet()
        if data != last_data:
            last_data = data
            sdata1 = re.search('weixin\\.qq', data)
            if sdata1 != None:
                print(data)
                data = data.replace('&', '&')
                print(data)
                res = requests.get(data, headers=headers)
                content = res.text
                title = re.search(r'var newTitle = \'(.*)\'', content).group(1)
                print(title)
                imgs(content, headers, title)
                messagebox.showinfo('提示', '下载完成~~~请继续复制新文章~~')
                print('下载完成~~~')
                ihtit.delete('1.0', 'end')
        time.sleep(1)
win = tkinter.Tk()
win.geometry('480x280')
win.title('公众号图片下载器')
ihLabel2 = tkinter.Label(win, text='请复制公众号文章连接~~~~自动下载文章的图片~~~!', font=('宋体', '9'))
ihLabel2.place(x=20, y=15, height=19)
ihtit = tkinter.Text(win, font=('宋体', '9'))
ihtit.place(x=15, y=51, width=450, height=183)
t = threading.Thread(target=copy1)
t.start()
win.mainloop()
CZ77   

win11 专业版,23H2,第一次打开软件复制粘贴公众号链接会自动下载,然后第二次再粘贴就不动了,要关闭软件重新打开才行。
李亲顾   

只能 下载图片吗?文章,视频,能不能
yks1985   

如果能下载视频就好了。希望后期增加功能
nxyclf   

好东西,收藏了
加奈绘   

咋使用的,是不是把公众号链接复制进去就可以下载呢
35925   

有些付费的,我付过费,但是下载不了。
付国兵123   


CZ77 发表于 2024-9-26 16:11
win11 专业版,23H2,第一次打开软件复制粘贴公众号链接会自动下载,然后第二次再粘贴就不动了,要关闭软件 ...

我试了一下可以的,就是要不弹出的对话框确定一下~~~
ihhz
OP
  

提高效率的小工具
您需要登录后才可以回帖 登录 | 立即注册

返回顶部