Python爬虫是指利用Python编程语言编写的程序,用于从网页上获取数据。通常,爬虫程序会模拟人类用户在网页上的行为,发送HTTP请求获取网页内容,然后解析这些内容以提取所需信息。常用的爬虫库包括requests
用于发送HTTP请求,BeautifulSoup
用于解析HTML或XML内容,以及Scrapy
用于构建更复杂的爬虫项目。通过爬虫,可以自动化地收集、分析和存储网络上的数据,用于各种目的,例如数据挖掘、搜索引擎索引、监控和分析等。
"""
爬虫实现基本流程:
一、数据来源分析
1.明确需求
**明确采集的网站以及数据内容**
*网址:
*数据:视频相关信息:标题/播放量/弹幕量/评论/作者...
2.抓包分析(在浏览器中进行操作)
**通过浏览器自带工具(开发者工具)进行数据抓包:分析我们需要数据可以请求哪个网址能够得到
1.打开开发者工具
F12/右键点击检查 选择 network(网络)
2.刷新网页/点击下一页查看数据
点击第二页/下一页(爬虫批量采集数据,进行翻页操作;最好从第二页开始分析,第一页有可能是静态页)
3.通过关键字搜索找到对应数据包链接(位置)
关键字:我们需要的数据(标题)
请求网址:
请求方法:GET
二、代码实现步骤
1.发送请求 (内容基本可以复制)
*模拟浏览器(字典接受参数内容)
主要是使用开发者工具中:请求标头 参数内容
常用:cookie/referer/host/User-Agent(UA)
*请求网址
*发送请求(请求方法&请求参数)
def GetRespon(url,data):
# 模拟浏览器(伪装)
headr={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
}
response = requests.get(url=url,params=data,headers=headr)
return response
2.获取数据
*response.text
获取响应的文本数据
*response.json()
响应数据返回内容{}/[{}]类似这样的形式 就直接获取json()
*response.content
保存 图片/音频/视频/特定格式文件 的时候,获取content表示获取二进制数据
3.解析数据
4.保存数据
"""
实例:
import requests
from bs4 import BeautifulSoup
head={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
res=requests.get('https://api.bilibili.com/x/v1/dm/list.so?oid=764406856',headers=head)
soup=BeautifulSoup(res.content,'html.parser')
danmus = soup.findAll('d')
for j in danmus:
# print(j.string)
with open("弹幕.txt",'a',encoding='utf-8') as f:
f.write(j.string)
f.write('\n')
print(j.string)
这个Python脚本使用了requests
库向Bilibili的一个API端点发送GET请求,从中获取评论(弹幕)的XML数据。然后,它使用BeautifulSoup
来解析XML内容。
它从XML内容中提取所有的<d>
标签,这些标签代表着单个评论。然后,它遍历每条评论,将其追加到名为"弹幕.txt"的文件中,并将每条评论打印到控制台。
head
变量定义了一个User-Agent头部,以模仿一个Web浏览器。这有时有助于绕过限制或从否则会阻止非浏览器流量的网站获取内容。