【爬虫实战项目一】Python爬取豆瓣电影榜单数据

目录

一、环境准备

二、编写代码

[2.1 分页分析](#2.1 分页分析)

[2.2 编码](#2.2 编码)


一、环境准备

安装requests和lxml

python 复制代码
pip install requests
pip install lxml

二、编写代码

2.1 分页分析

编写代码前我们先看看榜单的url

我们假如要爬取五页的数据,那么五个url分别是:

https://movie.douban.com/top250?start=0\&filter=
https://movie.douban.com/top250?start=25\&filter=
https://movie.douban.com/top250?start=50\&filter=
https://movie.douban.com/top250?start=75\&filter=
https://movie.douban.com/top250?start=100\&filter=

不难看出,规律在于start参数,每页有25条数据。

那么按照分页计算公式**(当前页数 - 1) * 每页数据量** 得出 代码逻辑。

2.2 编码

我们复制下xpath。

python 复制代码
import random
from lxml import etree
import requests
import time

# 请求头信息
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
# 共取5页数据
for i in range(1, 6):
    start = (i - 1) * 25
    url = f'https://movie.douban.com/top250?start={start}&filter='
    response = requests.get(url, headers=headers)
    tree = etree.HTML(response.text)
    div = tree.xpath('//*[@id="content"]/div/div[1]/ol/li/div')
    for d in div:
        # 获取当前电影标题
        title = d.xpath('.//span[@class="title"][1]/text()')[0]
        print(title)
    time.sleep(random.randint(1, 3))

成功爬取豆瓣电影TOP250榜单。

相关推荐
Dontla2 分钟前
vscode怎么设置anaconda python解释器(anaconda解释器、vscode解释器)
ide·vscode·python
waicsdn_haha11 分钟前
Java/JDK下载、安装及环境配置超详细教程【Windows10、macOS和Linux图文详解】
java·运维·服务器·开发语言·windows·后端·jdk
_WndProc13 分钟前
C++ 日志输出
开发语言·c++·算法
qq_4335545422 分钟前
C++ 面向对象编程:+号运算符重载,左移运算符重载
开发语言·c++
qq_5290252940 分钟前
Torch.gather
python·深度学习·机器学习
数据小爬虫@41 分钟前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
ZJ_.43 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
Narutolxy1 小时前
深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223
开发语言·golang·gin
Hello.Reader1 小时前
全面解析 Golang Gin 框架
开发语言·golang·gin
禁默1 小时前
深入浅出:AWT的基本组件及其应用
java·开发语言·界面编程