python爬虫xpath提取豆瓣电影数据_Python爬虫系列(十一) 用requests和xpath爬取豆瓣电影评论...

本文介绍了如何使用Python的requests和xpath库爬取豆瓣电影的短评,包括分析网页结构获取翻页链接和评论数据,解析评论的赞同人数、评论者、评价和内容,并将数据保存为txt、json和csv格式。文章提到在爬取过程中遇到的限制,即11页之后的评论需要登录才能访问,暗示后续可能涉及模拟登录的实现。
摘要由CSDN通过智能技术生成

这篇文章,我们继续利用 requests 和 xpath 爬取豆瓣电影的短评,下面还是先贴上效果图:

1、网页分析

(1)翻页

我们还是使用 Chrome 浏览器打开豆瓣电影中某一部电影的评论进行分析,这里示例为

和之前一样,我们可以通过构造 URL 获取全部网页的内容,但是这次我们尝试使用一种新的方法 —— 翻页

使用快捷键 Ctrl+Shift+I 打开开发者工具,然后使用快捷键 Ctrl+Shift+C 打开元素选择工具

此时用鼠标点击网页中的 后页,就会在源代码中自动定位到相应的位置

接下来我们用 xpath 匹配下一页的链接地址:

html.xpath('//div[@id="paginator"]/a[@class="next"]/@href')

这样一来,我们只要在每一页中通过循环不断获取下一页的内容即可

核心代码如下:

# 获取网页源代码

def get_page(url):

# 构造请求头部

headers = {

'USER-AGENT':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'

}

# 发送请求,获得响应

response = requests.get(url=url,headers=headers)

# 获得网页源代码

html = response.text

# 返回网页源代码

return html

# 解析网页源代码,获取下一页链接

def parse4link(html,base_url):

# 初始化返回结果

link = None

# 构造 _Element 对象

html_elem = etree.HTML(html)

# 匹配下一页的链接地址,注意,它是一个相对地址

url = html_elem.xpath('//div[@id="paginator"]/a[@class="next"]/@href')

# 若匹配成功,则将匹配结果与初始 URL 拼接,构成完整的链接地址

if url:

link = base_url + url[0]

return link

(2)分析网页内容

这一次我们需要的数据包括(这里还是使用 xpath 进行匹配):赞同人数://div[@class="comment-item"]/div[2]/h3/span[1]/span/text()

评论者://div[@class="comment-item"]/div[2]/h3/span[2]/

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值