环境及工具
- python3.6.5
- urllib
- pycharm
- 数据分析(分词、词频、词云)
数据爬取
因为之前有尝试过微信公众号文章数据的爬取,之前爬取的数据是文章的点赞数、评论数、阅读数等,那个比这个项目要难很多,需要涉及到从手机端抓包爬取,所以这次的数据爬取就比较轻松了。
微信文章以前一直都不知道从哪能爬取列表,参考某大神的文章,知道了从网页版微信公众号加入超链接可以得到想要公众号的所有历史文章列表。
登陆一个自己的公众号,在文章编辑器中找到超链接符号,搜索公众号名称即可。
整个数据爬取步骤如下:
- 分析微信公众号文章 ,选择爬取方法;
- 针对爬取到的数据进行分析,选择保存自己需要的数据;
分析微信文章
真是太棒了!可以看到公众号表白墙文章的排版都是很有规律的,大爱这样的统一规范的人,如此规范的排版给从网页抓取数据带来了无法言语的便利!!!
格式【?表白:………………】所以要提取表白内容就可以用正则表达式啦啦啦啦~
爬取所需数据
首先我们需要收集“北交大表白墙”公众号中表白的文章链接,也就是标题中带有交大表白墙的文章链接。这里我索性将所有文章链接都爬取下来。代码如下:
headers1 = {
'Cookie': '可以登陆自己的公众号获取',
'User-Agent':'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 '
}
data=None
# 起始页5的倍数
for i in range(0,20,5):
url = "https://mp.weixin.qq.com/cgi-bin/appmsg?token=1561633896&lang=zh_CN&f=json&ajax=1&random=0.2992621637924109&action=list_ex&begin={}&count=5&query=&fakeid=MzA5NzIzOTUxMQ%3D%3D&type=9".format(i)
req = urllib.request.Request(url,data, headers1)
response = urllib.request.urlopen(req)
# 将数据读出来
html = response.read()
# 我们下面将里面的title全部输出出来
# 数据转成字典
msg = json.loads(html