python爬虫抓取豆瓣网页
时间: 2024-12-27 20:24:17 浏览: 38
### 编写Python爬虫抓取豆瓣网页数据
为了实现这一目标,可以采用`requests`库发送HTTP请求并获取页面内容,再通过`BeautifulSoup`解析HTML文档结构。以下是具体方法:
#### 准备工作
确保安装了必要的库:
```bash
pip install requests beautifulsoup4 pandas openpyxl
```
#### 获取页面内容
使用`requests.get()`函数向目标URL发起GET请求,并传递可能需要的参数,如页码等。
```python
import requests
base_url = "https://movie.douban.com/top250"
response = requests.get(base_url, headers={"User-Agent": "Mozilla/5.0"}) # 设置合理的headers防止被封禁[^1]
if response.status_code == 200:
html_content = response.text
else:
print(f"Failed to retrieve page with status code {response.status_code}")
```
#### 解析HTML文档
引入`BeautifulSoup`对象处理返回的内容字符串,提取所需的信息片段。
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, 'html.parser')
titles = soup.find_all('span', class_='title')[:1] # 提取出电影名称标签
for title in titles:
movie_title = title.string.strip()
print(movie_title)
```
#### 存储数据至Excel文件
当收集到足够的条目之后,可借助`pandas.DataFrame`整理成表格形式最后保存为`.xlsx`格式。
```python
import pandas as pd
data_list = [{"Title": item} for item in movies_titles]
df = pd.DataFrame(data_list)
output_file_path = './douban_movies.xlsx'
df.to_excel(output_file_path, index=False)
print(f'Data has been successfully written into "{output_file_path}"')
```
上述过程展示了基本流程,实际操作时还需考虑更多细节,比如异常情况下的重试机制、遵守robots协议以及设置合适的访问间隔时间以免给服务器造成过大压力[^3]。
阅读全文
相关推荐















