最简单的爬虫数据分析
全部回答(1)
urllib爬取数据的基本流程:
1.
在启动爬虫之前,您需要首先确定要从中爬取数据的URL。 这是获取数据的第一步。
2.建立需求。
使用urllib库中的requests模块来构建请求。 需要设置请求方法,以及可能的请求头、cookie等。 这一步的目的是向目标服务器发送获取资源的请求。
三_发送请求并获取响应。
通过urllib发送构造好的请求,然后得到服务器响应。 响应通常包含状态代码、响应标头和数据。
4.描述响应数据。
得到响应后,需要解析其中的数据。 为了抓取网络,通常需要解析HTML代码。 您可以使用BeautifulSoup和lxml等库来解析HTML并提取所需的数据。
5.
提取的数据可以根据需要进行存储或进一步处理。 save方法可以保存到文件、数据库或执行其他后续操作。
1.确定目标URL:开发网络爬虫时,首先要指定要爬取数据的网页地址,即目标URL。 这是爬虫工作的起点。
2构建请求:根据目标URL,使用urllib库中的request模块构建请求。 该步骤需要根据实际情况设置请求方式,可能包括设置请求头、传递参数、cookie等信息。
3发送请求并获取响应:使用urllib发送构造好的请求,然后接收来自目标服务器的响应。 响应通常包含三部分:状态代码、响应头和数据。 状态码表示请求成功或失败,响应头包含一些元数据信息,数据是服务器返回的实际内容。
4.解析响应数据:得到响应后,需要解析其中的数据。 抓取网页,主要要解析的是HTML代码。 您可以使用BeautifulSoup和lxml等库来轻松解析HTML并提取所需的数据。 此步骤需要根据具体网页的结构和需求来调整解析逻辑。
5.数据存储或处理:提取的数据可以根据需要进行存储或进一步处理。 数据可以存储在文件、数据库等中,也可以对数据进行清洗、分析、挖掘等。 这一步是爬虫程序价值的体现,可以根据具体需求进行适配和开发。
II、爬虫数据分析案例-评论前段时间,微博上闹得沸沸扬扬的吴杜之间的骚动,着实让大家吃了不少苦头。 Peter从网上获取了一些用户评论数据进行数据分析,看看微博用户如何看待这件事。 至于后面事情会如何发展,等待法律的公正和公开,本文仅用于数据呈现和分析。
本文的数据是如何获得的?
微博评论的数据是通过ajax动态加载的,即地址栏中的URL不变则返回不同的数据,但实际请求的URL地址必须改变。 在GoogleChrome中,Loaded4次,生成不同的URL地址:
main_url是主评论的url地址,其他URL地址明显不同;url2、url3和url4之间的区别仅在于max_id。 几经周折,终于找到了关键:原来main_url地址返回的数据中包含了下一页(第二页)的max_id信息:
同样的操作,第二页返回的max_id也对应第三页。 页面URL地址中max_id的值。
⚠️总结:将上一页返回的数据中max_id的值作为下一页URL地址中max_id的值。
向首页main_url发送请求获取数据,找到我们需要爬取的字段信息(返回的数据会是一个json文件的样子):
看数据再次获取用户信息:
本文爬取的字段数据:
1.用户ID
2.用户评论时间:comment_time
3.用户微博注册时间:register_time
4.评论内容:评论
5.评论点赞数:comment_like
6。 评论回复数:comment_reply
7。 用户性别:性别
8.用户城市:城市
通过pandas库读取数据,我们查看前5条数据:
数据探索部分包括:
爬取数据的预处理:
时间处理,使用的是datetime库,一开始就已经导入了。 缩写为dt。 爬取的数据采用格林威治标准时间,变换如下:
主要目的是去除表情符号:
将数据中的f改为女性,m改为男性,则更直观、更容易理解
用户画像主要从不同维度分析用户在评论中的情况,包括:性别、城市、微博年龄、评论点赞数和回复数等。
按性格对用户进行分组统计:
虽然主要评论只有1000+,但从结果中我们可以看出:吴某某的粉丝依然以女性为主,远高于男性
<主要目的是了解哪些城市比较关注吴XX。 为了方便起见,我们统一取用户的省份信息:从条形图可以看出:
代表的是用户从注册到评论微博的时间间隔
用户年龄汇总:
主要目的是查看哪些微博评论点赞数最高
Peter当时爬取的数据是点赞数喜欢这个评论。 最高数字:滚出去!!!
多么简单粗暴啊!
从结果中我们可以看到,这是同一条评论:滚吧!
从不同年龄段用户的点赞数和回复数观察:
使用jieba分词绘制用户评论词云图:
绘制所有评论词云图:
我们对前50个高频词云进行截图并绘制
从所有词云和Top50词云图中,我们观察到:
我们再次郑重声明:本文仅供数据学习和分析。 我们相信法律将会对此事的后续处理得出公平、公正、公开的结论🍉