微信公众号文章爬取 | 数据爬取及可视化系列

这是《数据爬取及可视化系列》的第7篇文章。

前5篇文章,可以点击查阅:

01基于位置的用户画像初探

02技能之谷歌Chrome爬虫

03 使用Echarts制作可视化图表

04就叫Spyfari吧!|数据爬取及可视化系列

05💡关于知乎Live的一些数据 | 数据爬取及可视化系列

06 可视化爬虫SPY | 01


简单来说,整个技术路线是这样的:

用电脑架设一个代理服务器,

然后手机设置wifi代理,

打开手机微信,

浏览微信文章的历史页面,

在电脑端截取获取的数据,再做其他处理……

具体步骤如下:

一、安装代理服务器

目前使用的是Anyproxy。这个软件的特点是可以获取到https链接的内容。

1.1 在命令行或者终端运行 npm install -g anyproxy,mac系统需要加上sudo;

1.2 生成RootCA,https需要这个证书:运行命令sudo anyproxy --root(windows可能不需要sudo);

1.3 启动anyproxy运行命令:sudo anyproxy -i;参数-i是解析HTTPS的意思;

1.4 安装证书,在手机中安装证书,手机浏览器打开 http://localhost:8002/fetchCrtFile ,能获取rootCA.crt文件。

localhost修改为运行anyproxy的电脑的ip地址,注意手机跟电脑要位于同一个局域网哦。

1.5 设置代理:在手机wifi连接管理中,设置代理,代理服务器地址就是运行anyproxy的电脑的ip地址。代理服务器默认端口是8001;

现在打开微信,点击到任意一个公众号历史消息或文章中,在终端都可以看到响应的代码滚动。

1.6 电脑打开浏览器地址http://localhost:8002 可以看到anyproxy的web界面。从微信中点开一个历史消息页面,然后再看浏览器的web界面,会滚动出现历史消息页面的地址。

二、用SPY爬取文章列表

由于要保存到数据库里,所以我动用了自己开发的SPY爬虫软件,如果不需要保存到数据库,用chrome就可以了。

2.1 手机打开公众号的历史文章列表,下拉至最底下,把所有文章都加载出来。

2.2 打开SPY,输入地址http://localhost:8002,贴入代码。

代码大致的逻辑是:

a、获取mp/profile_ext?action=home&__biz=MzA3ODkyNDg4OA=

中获取到的文章列表数据。

b、由于文章列表数据是异步加载的,所以暂时需要手工在手机里把下拉文章列表,把所有的文章加载进来。

c、然后,SPY里把所有的文章数据提取出来,保存到数据库里。

代码如下:

var results = [];

var doms = document.querySelectorAll('.record_status_done');

var pages = [];

doms.forEach(function(dom, i) {

var isUrl = dom.children[4].getAttribute('title');

if (isUrl.match(/\/mp\/profile\_ext\?action\=getmsg\&/i)) {

pages.push(dom);

}

});

var step = 0;

stepByStep();

function stepByStep() {

pages[step].click();

var res;

setTimeout(function() {

if (document.querySelector('.resBodyContent')) {

res = JSON.parse(JSON.parse(document.querySelector('.resBodyContent').innerText).general_msg_list).list;

}

if (res) {

res.forEach(function(r, i) {

if (r.app_msg_ext_info) {

var target = r.app_msg_ext_info;

console.log(target, step, 'num');

var obj_save = {

author: target.author,

content_url: target.content_url,

cover: target.cover,

digest: target.digest,

title: target.title,

};

spy.save(obj_save);

results.push(obj_save);

console.log(results.length, step);

}

});

} else {

console.log(res, document.querySelector('.resBodyContent'))

}

step = step + 1;

setTimeout(function() {

document.querySelector('.escBtn').click();

}, 1000);

if (step < pages.length) {

setTimeout(function() {

window.stepByStep();

}, 3000);

} else {

spy.getResult(results)

}

}, 1000);

};

愉快的爬取文章吧~

爬下来做点好玩的事情~


设计+科技=

自在园O设计Mix科技实验室。

(0)

相关推荐

  • 第 129 天:爬取微信公众号文章内容

    有时候我们遇到一个好的公众号,里面的每篇都是值得反复阅读的,这时就可以使用公众号爬虫将内容抓取保存下来慢慢赏析. 安装 Fiddler Fiddler 的下载地址为:https://www.teler ...

  • Python爬虫实战练习:爬取微信公众号文章

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:徐洲更 为了实现该爬虫我们需要用到如下工具 Chrome浏览器 Py ...

  • 爬虫如何爬取微信公众号文章

    因为最近在法院实习,需要一些公众号的数据,然后做成网页展示出来便于查看,之前我倒是写过一些爬虫,但都是爬取网站数据,这次本来以为也会很容易,然而却遇到了不少麻烦,这里和大家分享一下. 1.利用爬虫爬取 ...

  • [我国我家]记录一下:我的微信公众号文章打印成册共十二册了

    --声明人:吕律(北外网络与继续教育学院多语种部德语培训教师,兼翻译编辑和写作者,笃信终身学习.我的联系方式:电话:0086-18101072751,电子邮件:lillylu0321@sina.com ...

  • 微信公众号文章、菜单如何实现一键拨号?

    一般地,我们在微信公众后台编辑文章和菜单时无法直接添加超链接拨打电话,下面告诉大家如何在公众号文章和菜单中添加一键拨号功能. 详细方法步骤如下: 文章 1.在需要点击拨号的地方选择插入小程序: 2.在 ...

  • 微信公众号文章搜索功能的使用

    从这些情况来看,大多数人对公众号内容的搜索都不了解,因为,在公众号内实际是带搜索功能的,但可能是因为没有默认地给出搜索框,所以导致大家都不习惯去用.具体操作方式如下: Step-01:进入公众号,点击 ...

  • 淮宁高铁的相关微信公众号文章 – 搜狗微信搜索

    350km/h!时候去南京了!淮宁高铁通车时间确定.... 省发改委供图建成后将成为淮安.连云港.盐城.宿迁等市直达南京更快的高铁出行方式实现淮安.南京之间1小时通达苏北各设区市... 淮安网2020 ...

  • 微信公众号文章如何打开默认浏览器

    小伙伴们你们知道微信公众号文章如何打开默认浏览器,今天小编很乐意与大家分享微信公众号文章用默认浏览器打开教程,感兴趣的可以来了解. 1.随便打开一篇公众号文章. 2.点击右上角的三个点. 3.选择在默 ...

  • 膨润土配制凝胶的相关微信公众号文章 – 搜狗微信搜索

    直播回顾 | 硅酸镁铝--无机高触变增稠剂的技术分享 鼠博士 硅碳鼠涂料圈 2020-06-24 推送时间:每周一至周五晚上8点 直播回顾 硅酸铝镁是一种白色的复合胶态物质,含水量小于8%,无毒,无味 ...