继续创造,加快生长!这是我参与「掘金日新计划 4 月更文挑战」的第6天,点击检查活动概况
数据收集
咱们上一篇介绍了,如何收集王者皮肤,买不起皮肤,当个桌面壁纸挺好的。咱们今日来学习如何收集电影谈论,看看这个电影好不美观。
发送恳求
咱们首要确认咱们的目标网址,对咱们需求获取的数据。
咱们要把每一个谈论获取下来,咱们接下来用到开发者工具。咱们看谈论是在什么方位。是不是在网页源代码中。接下来,咱们发送恳求,获取网页源代码。
url = 'https://movie.douban.com/subject/35267208/comments'
params = {
'start': f'{num}',
'limit': '20',
}
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
}
res = requests.get(url, headers=headers, params=params)
print(res)
这段代码中,咱们首要界说了一个 URL,然后运用requests.get()
函数获取该 URL 的数据,并将其存储在res
变量中。最终,咱们打印出res
变量的值,即获取到的数据。
在这个比方中,咱们运用了params
参数来指定获取数据的开始方位和每页显现的记载数。在这个比方中,咱们指定了开始方位为第num
条记载,每页显现limit
条记载。
请注意,这个比方中运用的user-agent
头部是为了模拟浏览器的行为。在实际运用中,咱们应该运用User-Agent
头部来指定咱们的恳求类型,例如requests.get()
函数默认运用'requests/2.18.4'
作为 User-Agent。
解析数据
咱们还可以获取其他信息,比方讲,地区,时间之类的。
咱们先解析数据。
selector = parsel.Selector(res.text)
info_lists = selector.css('div.comment-item')
这段代码中,咱们首要运用parsel
库中的Selector
类来解析res.text
中的内容,并将其转换为 CSS 选择器。然后,咱们运用css
办法来获取 CSS 选择器中的所有div
元素,并将其存储在info_lists
变量中。
需求注意的是,parsel
库中的Selector
类是一个比较底层的 CSS 解析器,它并不会对 CSS 选择器进行任何优化或转换。因而,在运用Selector
类时,咱们需求确保输入的 CSS 选择器是有用的,而且不会包含任何无效的 CSS 特点或值。
获取内容
for info_list in info_lists:
# print(info_list)
name = info_list.css('.comment-info a::text').get()
rating = info_list.css('.rating::attr(title)').get()
times = info_list.css('.comment-time::attr(title)').get()
area = info_list.css('.comment-location::text').get()
vote_count = info_list.css('.vote-count::text').get()
short = info_list.css('.short::text').get()
这段代码中,咱们运用for
循环遍历info_lists
中的每一个元素,并运用css
办法获取该元素的text
特点值。然后,咱们运用get()
办法获取该特点值的title
特点值,并将其存储在name
变量中。接着,咱们运用get()
办法获取该特点值的title
特点值,并将其存储在rating
变量中。最终,咱们运用get()
办法获取该特点值的title
特点值,并将其存储在times
变量中。最终,咱们运用get()
办法获取该特点值的title
特点值,并将其存储在area
变量中。最终,咱们运用get()
办法获取该特点值的title
特点值,并将其存储在vote_count
变量中。最终,咱们运用get()
办法获取该特点值的title
特点值,并将其存储在short
变量中。
输出内容
print(name, rating, times, area, vote_count, short)
这段代码中,咱们运用print()
函数打印出了称号、评分、时间、地址、投票数和简短描绘。
总结
在这个比方中,咱们运用了parsel
库中的Selector
类和css
办法来获取网页中的 CSS 选择器,并将其转换为相应的特点值。咱们还可以运用其他办法来解析数据,例如运用params
参数来指定获取数据的开始方位和每页显现的记载数,运用headers
参数来指定 User-Agent 头部。咱们还可以运用其他开发者工具来获取更多数据,例如运用网页源代码来获取网页中的所有谈论。