专栏名称: 德勤数智
德勤数智研究院 (Deloitte Analytics Institute) 是一个卓越中心,我们致力于提供最佳策略和技术,以帮助解决德勤中国客户最棘手的业务挑战。
目录
相关文章推荐
通信头条  ·  厉害!移动网格经理年终奖8万多 ·  3 天前  
通信头条  ·  中国移动两家重要子公司一把手刚刚变动 ·  4 天前  
长三角消保委联盟  ·  倾听客户心声,合肥联通举办提升消费者满意度主 ... ·  3 天前  
长三角消保委联盟  ·  倾听客户心声,合肥联通举办提升消费者满意度主 ... ·  3 天前  
51好读  ›  专栏  ›  德勤数智

一步一步教你爬取微信公众号文章

德勤数智  · 公众号  ·  · 2019-03-08 16:22

正文

        微信作为当下数一数二的社交APP,拥有巨大的用户量,在此基础上,许多附属功能也发展的越来越快,比如微信公众号,许多企业,商家或者个人都纷纷使用公众号发布文章向用户传递信息,因此,微信公众号也成了一个突出的网络舆情分析数据源。

        现在有很多数据分析的案例,都会用到微信公众号发布的文章,作为数据源之一。俗话说,不会写爬虫的报表开发不是一个好的数据分析师,下面,我们就一起来看看如何用爬虫技术来快速爬取微信公众号的文章。


准备阶段

  • 安装python开发环境

    从Python的官方网站python.org下载python3.5,运行安装文件,勾上所有组件,然后一路点next即可完成安装。安装完成后打开命令行窗口,敲入python命令,得到下图界面提示后表示安装成功。



  • 安装fiddler抓包软件

      Fiddler是一个比较好用的抓包工具,可以将网络传输发送与接收的数据包进行截获、重发、编辑等操作,我们使用fiddler正好可以跟踪到微信公众号文章列表对应的HTTP链接以及请求参数等内容,方便我们做分析。

Fiddler 下载地址 :  

https://www.telerik.com/download/fiddler


  • 在电脑上登录微信


分析步骤

  1. 打开fiddler抓包软件,然后打开电脑版微信,找到需要爬取的公众号



  2. 点击公众号,再点击查看历史信息



  3. 进入历史信息界面如下



  4. 向下滑动右侧的滚动条,同时观察fiddler上的抓包信息,有新的抓包信息出现后即可停止,仔细分析抓包软件中显示的信息



    如上图所示,图中选中的请求就是拖动滚动条,后台向微信服务器发起的请求,该请求可以返回公众号发布过的历史文章信息。


  5. 分析HTTP请求参数


多滑动几次滚动条,分析每次请求的参数,发现以上参数中只有offset和is_ok参数会变化,这两个参数是如何构造的呢,分析这类请求返回的json数据


在返回的json数据中,next_offset对应的就是下一次请求对应的offset参数,can_msg_continue对应的就是下一次请求对应的is_ok参数,通过观察,当返回的json数据can_msg_continue=0的时候就代表历史信息翻页已经翻到底了。

继续分析json数据, 可以看到general_msg_list键对应的value里包含了文章列表的基本信息,比如文章标题和url,向url发起请求便可以拿到文章内容。


编写脚本

        根据我们以上分析,通过抓包软件Fiddler,可以找到公众号历史信息对应的url以及url请求需要携带的参数,我们可以通过代码来构造这些请求链接,并模拟翻页,一次性爬取完公众号的历史文章信息。下面就是编写代码了。

关键代码展示

爬取过程