node爬虫(nodejs爬虫抓取搜狗微信文章代码)

成果

node爬虫(nodejs爬虫抓取搜狗微信文章代码)(1)

node爬虫(nodejs爬虫抓取搜狗微信文章代码)(2)

代码,github地址 : https://github.com/zzwwjjdj319/wechat_crawler

展示地址 : http://117.40.138.188:15978/wxmatrix/app/page/article-top-list

使用模块

  • async -- 异步流程控制 基本使用 : http://blog.csdn.net/zzwwjjdj1/article/details/51857959

  • request -- 抓取网站模块 官网 : https://www.npmjs.com/package/request

  • cheerio -- 处理html模块 官网 : https://www.npmjs.com/package/cheerio

思路

爬取的思路 : 从搜索开始 -> 进入公众号文章列表页面 -> 再分别访问每篇文章 ->同时ajax获取点赞量,阅读量等信息. 因为公众号文章列表和文章内容页的url都是临时链接,大概是2个小时过期,所以每次都需要从搜索开始爬取.

代码说明一

app.js是主文件,npm installnode app 就可以启动爬虫任务,测试是支付宝公众号,爬取了最近5篇文章;

代码说明二

从app.js能看出调用了3个方法,分别是search_wechat, look_wechat_by_url, get_info_by_url

common.js就是实现了这3个方法,和需要调用的其他方法.

爬虫第一步

首先就是根据提供的微信号.搜索公众号,获取公众号列表 -- common.js里的 search_wechat 方法

得到公众号的临时URL

爬虫第二步

访问临时的公众号URL -- common.js里的look_wechat_by_url 方法,得到最近10条图文消息列表,注意

这里搜狗微信做了反爬虫机制,经常出现验证码,代码中需要破解验证码,nodejs识别验证码暂时没找到好用的模块,

我使用的是第三方接口实现的.授权码已屏蔽.

所有文章数据在JS代码中,通过正则获取. match(/var msgList = ({. }}]});?/) ,分析数据结构,

重组成自己需要的数据结构.

爬虫第三步

根据图文url获取详细信息,发布日期,作者,公众号,阅读量,点赞量等 -- common.js里的 get_info_by_url方法

其中,阅读量和点赞量是ajax获取的,微信文章的永久链接,看代码,就不写明了.

运行代码截图

node爬虫(nodejs爬虫抓取搜狗微信文章代码)(3)

意外金喜的博客 : http://blog.csdn.net/zzwwjjdj1

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页