node爬虫(nodejs爬虫抓取搜狗微信文章代码)
代码,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 install 后 node 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获取的,微信文章的永久链接,看代码,就不写明了.
运行代码截图
意外金喜的博客 : http://blog.csdn.net/zzwwjjdj1
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com