爬虫练习-爬取豆瓣电影 Top 250信息并存储于本地

本文介绍了使用Python爬虫抓取豆瓣电影Top250信息的步骤,包括设置请求头避免418错误,利用XPath解析HTML获取电影详情,将数据保存到本地CSV文件,并实现翻页功能。在解析过程中,注意到长名称可能导致信息显示不全的问题,同时解决了文件编码导致的中文乱码问题。
摘要由CSDN通过智能技术生成

思路

请求网页
翻页
开始
解析电影Top250页面
获取信息

使用环境

  1. python版本:python3
  2. 浏览器:Google Chrome
  3. 模块:xpath(lxml)、requests

一、请求网页

豆瓣电影Top250第一页url:https://movie.douban.com/top250?start=0&filter=
一开始请求网页加了headers,然后想解析网页来着,竟然返回了418(咦,这返回个是啥,反正不是200,难受,查查文档),这是IETF在1998年愚人节时发布的一个笑话RFC,具体可以参考RFC 2324 - Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)超文本咖啡壶控制协议。htcpcp1.0协议中的418的意义是:当客户端给一个茶壶发送泡咖啡的请求时,茶壶就返回一个418错误状态码,表示“我是一个茶壶”。
emm,可能是豆瓣启动反爬机制了,然后给返回一个玩笑,查了好久的资料,最后,当当当,请看
请求返回418,已解决,没错,就这么简单,加一个timeout参数
html = requests.get(url, headers=headers,timeout=30)
请求成功返回状态码200
print(html.status_code)

二、解析网页

(一)请求网页成功后当然是解析网页,分析网页结构可知,我们需要的信息都被<div class="info">所包含
在这里插入图片描述
那我们分成一小块一小块来解决问题,先用xpath解析出class属性为info的div块
root.xpath('//div[@class="info"]')
(二)再对里面的详细信息进行分析,如下

		# 影片名称
        title = InformationBlock.xpath('div[@class="hd"]/a/span[@class="title"]/text()')[0]
        # print(title)

        info = InformationBlock.xpath('div[@class="bd"]/p[1]/text()')
        # print(type(info))

        directorAndStarring = str
  • 10
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值