由Python采集器实现的微信官方帐户文章下载器
优采云 发布时间: 2020-08-06 17:13硒爬行过程
安装python selenium自动模块,并使用selenium中的webdriver驱动浏览器以获取cookie并登录到微信官方帐户后端;
要使用webdriver功能,您需要安装相应的浏览器驱动程序插件
注意: Google Chrome版本和chromedriver需要对应,否则在启动过程中会报告错误.
微信官方帐户登录地址:
可以在微信公众号后台创建微信公众号文章界面地址,以创建新的图形消息,并通过超链接功能获取该消息:
搜索官方帐户名
获取要抓取的官方帐户的伪造物
选择要抓取的官方帐户,并获取文章界面地址
文章列表的页面滚动和内容获取
AnyProxy代理批量采集
1. 微信客户端: 可以是安装了微信应用程序的手机,也可以是计算机中的Android模拟器.
2. 微信个人帐户: 为了采集内容,不仅需要微信客户端,还需要专用于采集的微信个人帐户.
3. 本地代理服务器系统: 通过Anyproxy代理服务器将官方帐户历史记录消息页面中的文章列表发送到您的服务器.
4. 文章列表分析与存储系统,分析文章列表,建立采集队列,实现内容的批量采集.
提琴手设置代理和数据包捕获
通过捕获和分析多个帐户,我们可以确定:
_biz: 这个14位数字的字符串是每个官方帐户的“ id”,可在搜狗的微信平台上获得
uin: 与访客有关,微信ID
密钥: 与所访问的官方帐户有关
步骤:
1. 编写按键向导脚本,并自动单击电话上的“公众号文章列表”页面,即“查看历史新闻”;
2,使用提琴手代理劫持手机访问权,并将URL转发到用PHP编写的本地网页;
3,将php网页上收到的URL备份到数据库中;
4,使用python从数据库中获取URL,然后执行正常的爬网.
可能的问题:
如果您只想抓取文章的内容,似乎没有访问频率的限制,但是如果您要捕获阅读次数和喜欢的次数,则在一定频率后,返回值将变为空值.
付费平台
例如,如果您只想查看Qingbo的新列表,则可以直接查看每日列表,而无需花钱. 如果您需要访问自己的系统,它们还提供api接口
3个项目步骤
3.1基本原理
目标爬网网站收录微信平台上大多数高质量的微信官方帐户文章,这些文章将定期更新. 经过测试,发现它对爬虫更友好.
1. 网站页面的布局和排版规则,通过链接中的帐户来区分不同的官方帐户
2. 在公共帐户集合下的文章翻页也是正常的: 每翻页ID号+12
所以流程的想法是
获取查询前的微信官方账号ID(不是直接显示的名称,而是信息卡中的ID号,通常由数字和字母组成)
请求html页面以确定官方帐户是否已收录或更改
如果不包括该页面,则页面显示结果为: 404该页面不存在,因此您可以直接使用正则表达式来匹配提示消息
常规匹配,查找目标官方帐户中收录的文章的最大页数
分析请求页面,提取文章链接和标题文本
保存信息提取结果
调用pdfkit和wkhtmltopdf转换网页
3.2环境
win10(64位)
Spyder(python3.6)
安装转换工具包wkhtmltopdf
请求
pdfkit
3.3官方帐户信息检索
通过向目标url发起requset请求,获取页面html信息,然后调用常规方法以匹配两条信息
1. 官方帐户存在吗?
2. 如果存在,那么文章中最多的页面数是什么?
存在正式帐户后,直接致电请求以解决目标请求链接.
请注意,目标采集器网站必须添加标头,否则它将直接拒绝访问
3.4定期分析,提取链接和文章标题
以下代码用于解析html文本中的链接和标题文本信息
3.5自动跳转页面
以下代码通过循环递增分配来更改url中的页码参数.
3.6删除标题中的非法字符
由于Windows下有file命令,因此无法使用某些字符,因此我们需要使用常规消除符
itle = re.sub('[\\\\ /: *?\“ |]','',info.loc [indexs] ['title'])
3.7将html转换为PDF
使用pandas的read_csv函数读取抓取的csv文件,并在“链接”,“标题”,“日期”之间循环
然后通过调用pdfkit函数转换并生成PDF文件
3.7将html转换为PDF
使用pandas的read_csv函数读取抓取的csv文件,并在“链接”,“标题”,“日期”之间循环
然后通过调用pdfkit函数转换并生成PDF文件
3.8生成的PDF结果
4结果显示