天行科技

最简单的爬虫数据分析

数据分析 2008-11-03 10:14:22 浏览:2957 分享
还可以输入1000字

全部回答(1)

最佳回答

I、简述urllib爬取数据的基本流程

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词云图中,我们观察到:

我们再次郑重声明:本文仅供数据学习和分析。 我们相信法律将会对此事的后续处理得出公平、公正、公开的结论🍉

2