分享

利用OCR批量导出微信收藏链接Python实现

 程序员笔记 2023-10-23 发布于北京

       喜欢微信的朋友一般都在微信收藏了大量的公众号链接,久而久之难以进行管理,不利于已积累知识的利用。下面分享一种删除微信收藏链接的方案并提取链接跟标题到文档中。首先我们看一下最基本的人工操作:

1.安装并打开微信电脑版:下载并安装微信电脑版,然后登录您的微信帐号。

2.打开聊天记录:在微信电脑版中,找到并打开包含您要提取链接的聊天记录。

3.浏览收藏内容:在聊天记录中,找到并点击“收藏”选项卡。这将显示您在该聊天记录中收藏的所有内容。

4.提取链接:在收藏内容中,找到包含链接的条目。您可以使用鼠标右键点击链接,然后选择“复制链接地址”或类似选项来复制链接地址。

5.导出链接:将复制的链接地址粘贴到一个文本文件中,每个链接一行。保存文件并命名为适合您的需要的文件名。

6.删除链接:选中内容,右键在菜单中选择删除按钮,并点击确定。

        如果几百条收藏链接,这样操作得有几千步操作,基本没法手工完成,现在我们利用python模拟人操作鼠标的方法进行链接导出。

    以下代码是一个使用pyautogui、AipOcr、pyperclip、cv2、numpy、time和json库/模块执行各种任务的Python脚本。以下是代码的详细说明:

1.导入所需的库/模块。

2.使用(x, y)坐标的元组定义屏幕上不同点的位置。

3.定义一个空列表和变量来存储url跟文章标题。

4.定义一个click函数,以在给定位置执行鼠标点击。

5.定义一个screenshot函数,用于在屏幕上的特定区域进行截屏并保存为图像文件。

6.定义一个baidu_aip函数,使用百度OCR API对捕获的图像进行文字识别,并提取文本内容。

7.在__main__块中,使用提供的APP_ID、API_KEY和SECRET_KEY设置百度OCR API客户端。进入一个重复50次的循环。对屏幕上的特定区域进行截屏。执行一系列鼠标点击操作,选择链接、复制其URL、删除链接并确认删除。使用百度OCR API从捕获的图像中提取文本。将URL和提取的文本追加到相应的列表中。减小循环计数器。如果循环计数器达到0,以追加模式打开一个文件,并将列表中提取的名称和URL写入文件中。

      请注意,为了使代码正常工作,需要将代码中的'xxxxxx'占位符替换为您的实际百度API凭据(APP_ID、API_KEY和SECRET_KEY),并确保所需的库已安装。


import pyautogui
from aip import AipOcr
import pyperclip
import cv2
import numpy as np
import time
import json


sel, copy, dele, yes = (400, 100), (450, 200), (450, 225), (900, 550) # 选择第一条链接位置, 复制链接按钮位置, 删除按钮位置, 删除确认点位置
path = 'weixin.txt'
l = ['']
nameList = ['']




def click(t, but='left'):
pyautogui.click(*t, button=but)
time.sleep(0.1)


def screenshot():
now = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))
img = pyautogui.screenshot(region=[360, 80, 1340, 120]) # x,y,w,h
img = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR) # cvtColor用于在图像中不同的色彩空间进行转换,用于后续处理。
name = now+'screen.png'
cv2.imwrite(name, img)
return name


def baidu_aip(client,name):
res = ''
with open(name, 'rb') as f:
image = f.read()
# 调用百度API通用文字识别(高精度版),提取图片中的内容
text = client.basicAccurate(image)
result = text["words_result"]
res = res + result[0]["words"]
res = res + result[len(result)-1]["words"]
return res




if __name__ == '__main__':
APP_ID = 'xxxxxx'
API_KEY = 'xxxxx'
SECRET_KEY = 'xxxxx'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
i = 50
while i>0:
picname = screenshot()
click(sel, 'right')
click(copy)
url = pyperclip.paste()
l.append(url)
click(sel, 'right')
click(dele)
click(yes)
time.sleep(0.2)
result = baidu_aip(client,picname)
time.sleep(0.5)
nameList.append(result)
i = i-1
if i == 0:
with open(path, 'a') as f:
for j in range(1,len(l)):
url = l[j]
name = nameList[j]
f.write(name+' '+url + '\n')

批量导出的URL到weixin.txt

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多