前言
环境使用
- Python 3.8 解释器
- Pycharm 编辑器
所需模块
import parsel >>> pip install parsel
import requests >>> pip install requests
import csv
一. 数据来源分析:
- 明确需求:
- 采集的网站是什么?
https://movie.douban.com/subject/35267208/comments?limit=20&status=P&sort=new_score
- 采集的数据是什么?
评论相关数据
- 抓包分析相关数据来源
通过浏览器自带开发者工具进行抓包分析 <重点>
- 打开开发者工具: F12 或者 鼠标右键点击检查选择network
- 刷新网页: 让本网页的数据内容重新加载一遍
- 关键字搜索: 通过关键字<要的数据>, 搜索查询相对应的数据包
https://movie.douban.com/subject/35267208/comments?limit=20&status=P&sort=new_score
二. 代码实现步骤: 基本四大步骤 --> 发送请求,获取数据,解析数据,保存数据
- 发送请求, 模拟浏览器对于url地址发送请求
https://movie.douban.com/subject/35267208/comments?limit=20&status=P&sort=new_score
- 获取数据, 获取服务器返回响应数据
开发者工具 --> response - 解析数据, 提取我们想要的数据内容
评论相关数据 - 保存数据, 把数据内容保存表格文件里面
评论数据获取
发送请求, 模拟浏览器对于url地址发送请求
返回<Response [200]>表示请求成功
# 请求链接
url = f'https://movie.douban.com/subject/35267224/comments?start=20&limit=20&status=P&sort=new_score'
# 伪装模拟
headers = {
# User-Agent 用户代理, 表示浏览器基本身份标识
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
print(response)
解析数据
解析方法:
- 正则re --> 直接对于字符串数据进行解析
- css选择器 --> 根据标签属性提取数据
- xpath节点提取 --> 根据标签节点提取数据
把获取下来html字符串数据 <response.text>, 转成可解析对象
提取具体数据内容
.comment-info a --> 定位class类名为comment-info下面a标签
a::text --> 提取a标签里面文本
get() --> 获取第一个标签内容
attr() --> 提取属性
selector = parsel.Selector(response.text)
# 第一次提取, 所有div标签
divs = selector.css('div.comment-item')
# for循环遍历, 把列表里面元素一个一个提取出来
for div in divs:
name = div.css('.comment-info a::text'</