注:本篇需要python基础,json基础
前言:上篇我们学习了怎么用python获取百度热搜,在这篇中,我们将进一步学习,利用python爬取校园集市帖子并生成词云图
[toc]
灵感背景:经常在群里看见机器人转发的校园集市帖子,于是想要爬取下来分析一下
第一步,分析请求
点击链接进入浏览器页面
按下F12打开浏览器开发者界面
点击网络,按下F5刷新
刷新后如图所示
点击预览,寻找目标请求
最终找到请求
点击标头,获取url
第二步,编写代码
1 | import requests |
结果如下
1 | {"code":200,"msg":"\u8bf7\u6c42\u6210\u529f","data":{"id":17020,"title":"\u7f8e\u56fd\u8001\u5e74\u5b66\u672f\u4f1a\u8baeGSA","content":"\u6709\u65e0\u5144\u5f1f\u59d0\u59b9\u4e4b\u524d\u53bb\u8fc7\u7f8e\u56fd\u5b66\u672f\u5e74\u4f1aGSA\uff0c\u6c42\u52a9","user_id":16872,"reading":243,"contact_id":16736,"school_id":1,"classify_id":2,"created_at":1718436786,"images":[],"art_like":0,"is_end":0,"is_top":0,"is_rec":0,"status":1,"account":"\u82f9\u679c\u53d1\u7b8d","avatar":"https:\/\/os.xiaouni.com\/uploadsimage\/2023\/09-01\/c3e65afd79583b01.jpg","zone_id":4,"is_like":0,"is_collect":0,"collect_count":0,"comment_count":0,"user":{"id":16872,"is_authority":0,"nickname":"\u5c0f\u7ea2","portrait":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/ECkvJVPXNstK1G0syFKuAvko2dF3qibGKLich2mscnYPfiaDylZrLICCG9phvUKbBaDAuk8JgbVibYyyd1AWgs9Qqg\/132","leaver_color":"#FADC3A","leaver_name":"\u5927\u4e00"},"contact":{"id":16736,"money":"0","contact_way_id":2,"contact_info":"3076689048","contact_name":"","contact_way":{"id":2,"name":"QQ"}},"school":{"id":1,"name":"\u534e\u897f"},"classify":{"id":2,"name":"\u4e07\u80fd\u6c42\u52a9","is_anonymous":0}}} |
我们发现这个是json格式的内容,而且是以unicode进行编码的结果
我们进一步修改代码,获取帖子标题和内容
1 | import json |
结果如下
1 | title: 美国老年学术会议GSA |
成功获取集市帖子
第三步,批量获取帖子
我们改进代码,获取最近的300条帖子,写到一个txt文件中方便后续使用
1 | import json |
结果如下
第四步,绘制词云图
编写一个新的python脚本,将上面获取到的帖子内容绘制成词云图
这步需要安装jieba库(注:这里只是jieba库的简单运用,并未排除一些无意义的词,若要更加出色的表现,可进行jieba库的学习)和wordcloud库
1 | pip install jieba |
接下来编写代码
1 | import jieba # 用于文章分词 |
打开1.png结果如下 (词语出现频率越高,在词云图中的字就越大)
成功实现词云图绘制