技术分享 | 基于 API 解析的 Python 爬虫

最近各大高校纷纷翻拍 Coincidence 抖肩舞,需要对这种流行现象进行数据分析。数据分析首先需要有数据,本文介绍了爬取 B 站相应视频的评论、弹幕、播放量、点赞数等数据的方法。爬虫有多种实现方法,大型的网络爬虫多基于成熟的爬虫框架(如:Scrapy 等)进行编写,代码量相对较大,且需要处理动态网页解析、应对反爬机制等,挑战较大。但如仅需爬取特定的网页数据,不要求动态更新,可以结合网页本身的特点,基于Requests请求和正则表达式即可快速获取需要的数据。本文以获取【中国人民大学抖肩舞】评论和监测数据为例,介绍基于 API 解析的数据爬取方法。

实验环境:chrome、python

一、实验原理介绍

首先简要介绍一下数据爬取的基本原理,浏览器打开一个网站,实际上是一个和网站服务器交互的过程,交互过程简要介绍如下:

  1. 浏览器从 URL 中获取 IP地址 和给定的端口号(HTTP 协议默认为端口 80,HTTPS 默认为端口 443),打开 TCP 连接,浏览器 和 服务器 建立连接;

  2. 浏览器向服务器发送 HTTP / HTTPS 请求,请求 URL 相应的页面 ;

  3. 服务器接收请求并查找相应 HTML 页面。如果页面存在,服务器 响应请求并将其发送回浏览器。如服务器找不到请求的页面,将发送一个 HTTP 404 错误消息,代表找不到页面;

  4. 浏览器接收到 HTML 页面,然后通过它从上到下解析寻找列出的其他资源,如图像,CSS 文件,JavaScript 文件等;

  5. 对于列出的每个资源,浏览器重复上述整个过程,向服务器发送 HTTP 请求;

  6. 浏览器完成加载 HTML 页面中列出的所有其他资源后,页面将最终加载到浏览器窗口中,且连接将被关闭。

待爬取的数据分为两种,一种是静态网页数据,这种数据隐藏在第 3 步请求得到的 HTML 中,我们只需通过 xpath、正则表达式等解析 HTML 网页抽取目标数据即可(注:静态网页数据可以通过鼠标右键 “显示网页源代码” ,如果在源代码里面找到目标数据,则为静态网页数据;如果未找到,则为动态网页数据);另外一种是动态网页数据,这种数据浏览器通过第 4 步解析需要的数据后,在第 5 步向服务器进行请求获取数据,这种请求大都被设计为 API( Application Programming Interface,应用程序编程接口 )供前端网页调用,动态网页数据获取可以采用多种方式解决,本文介绍的解析 API 模拟请求是其中一种。

我们想要获取的评论数据通过 B 站 主页即可得到,但是对于监测数据,由于 B 站只显示当前的播放量、点赞量等,无法获取历史数据,历史数据的获取需要每天爬取并存入数据库中,幸好找到记录历史数据的第三方网站:BiliOB观测者,可以通过该网站获取历史数据,监测和评论数据介绍如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值