欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

程序员文章站 2022-10-16 16:41:42
进群:548377875 即可获取数十套PDF哦! 工具需求: 输入:给定公众号ID,和用户需要获取的公众号文章目录页码数(小于已发布最大收录页数) ( 输出Ⅰ:每个公众号历史文章信息csv文件(链接+标题) 输出Ⅱ: wkhtmltopdf和pdfkit将html转换成PDF文件或者图片文件(初稿 ......
视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

进群:548377875  即可获取数十套pdf哦!

工具需求:

输入:给定公众号id,和用户需要获取的公众号文章目录页码数(小于已发布最大收录页数)

( 输出ⅰ:每个公众号历史文章信息csv文件(链接+标题)

输出ⅱ: wkhtmltopdf和pdfkit将html转换成pdf文件或者图片文件(初稿)

现有方案

之前在网上也搜索了些爬取微信公众号的资料,大概有如下几种

selenium爬取流程

  1. 安装python selenium自动模块,通过selenium中的webdriver驱动浏览器获取cookie登录微信公众号后台;
  2. 使用webdriver功能需要安装对应浏览器的驱动插件
  3. 注意:谷歌浏览器版本和chromedriver需要对应,否则会导致启动时报错。
  4. 微信公众号登陆地址:https://mp.weixin.qq.com/
  5. 微信公众号文章接口地址可以在微信公众号后台中新建图文消息,超链接功能中获取:
  6. 搜索公众号名称
  7. 获取要爬取的公众号的fakeid
  8. 选定要爬取的公众号,获取文章接口地址
  9. 文章列表翻页及内容获取

anyproxy代理批量采集

视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

fiddler设置代理和抓包

通过对多个账号进行抓包分析,可以确定:

  • _biz:这个14位的字符串是每个公众号的“id”,搜狗的微信平台可以获得
  • uin:与访问者有关,微信号id
  • key:和所访问的公众号有关

步骤:

1,写按键精灵脚本,在手机上自动点击公号文章列表页,也就是“查看历史消息”;

2,使用fiddler代理劫持手机端的访问,将网址转发到本地用php写的网页;

3,在php网页上将接收到的网址备份到数据库;

4,用python从数据库取出网址,然后进行正常的爬取。

可能存在的问题:

如果只是想爬取文章内容,似乎并没有访问频率限制,但如果想抓取阅读数、点赞数,超过一定频率后,返回就会变为空值。

付费平台

例如清博 新榜,如果只是想看数据的话,直接看每天的榜单就可以了,还不用花钱,如果需要接入自己的系统的话,他们也提供api接口

3项目步骤

3.1基本原理

目标爬取网站收录了微信平台大部分的优质微信公众号文章,会定期更新,经测试发现对爬虫较为友好。

1、网站页面布局排版规律,不同公众号通过http://chuansong.me/account/almosthuman2014链接中的account区分

2、一个公众号合集下的文章翻页也有规律:id号每翻一页+12

所以流程思路就是

  • 获取预查询微信公众号id(不是直接显示的名称,而是信息名片里的id号,一般由数字字母组成)
  • 请求html页面,判断是否已经收录改公众号
  • 如果没有收录,则页面显示结果为:404该页面不存在,所以直接使用正则表达式来匹配该提示信息即可
  • 正则匹配,找到目标公众号最大收录文章页数
  • 解析请求页面,提取文章链接和标题文字
  • 保存信息提取的结果
  • 调用pdfkit和wkhtmltopdf转换网页
视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

3.5自动跳转页面

以下代码通过循环递增赋值,改变url中的页码参数

视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

3.8生成的pdf结果

视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

4结果展示

 

视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

 

视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

 

视频下载器你知道吧?那你听说过文章下载器吗?Python来实现!

 

 

5 完整代码

由于考虑到转pdf的稳定性,我在发布版的代码中没有加转pdf的函数。预留了一个粗糙的py源文件,如果感兴趣,读者可以在此基础上自行调整修改。

源码就单独私信,我一个个给你们发!