python爬虫爬取多页数据豆瓣
时间: 2023-11-11 14:00:36 浏览: 143
豆瓣爬虫python
好的,针对您的问题,您可以使用 Python 的 requests 库和 BeautifulSoup 库来实现。具体步骤如下:
1. 导入 requests 和 BeautifulSoup 库
```python
import requests
from bs4 import BeautifulSoup
```
2. 构造请求头和请求参数
```python
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
params = {
'start': 0,
'limit': 20
}
```
其中,`start` 表示起始位置,`limit` 表示每页显示的数量。
3. 发送请求并解析数据
```python
url = 'https://movie.douban.com/top250'
response = requests.get(url, headers=headers, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
```
4. 解析数据并存储
```python
movies = soup.find_all('div', class_='hd')
for movie in movies:
print(movie.a.span.text)
```
其中,`find_all` 方法可以根据标签名和属性值来查找元素,这里我们查找所有 `class` 属性为 `hd` 的 `div` 元素,然后遍历每个元素,获取电影名称。
5. 翻页操作
```python
while True:
next_page = soup.find('span', class_='next').a
if next_page:
url = next_page['href']
response = requests.get(url, headers=headers, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.find_all('div', class_='hd')
for movie in movies:
print(movie.a.span.text)
else:
break
```
这里我们使用 `while` 循环来实现翻页操作,如果存在下一页,则获取下一页的链接,发送请求并解析数据,否则退出循环。
阅读全文