网络爬取豆瓣TOP250电影名,导演,评分,评分人数
时间: 2024-12-11 21:34:50 浏览: 20
Python爬虫程序源代码爬取豆瓣TOP250排行榜数据电影名称评分导演演员等信息
网络爬取豆瓣电影Top250的信息通常涉及以下几个步骤,这里以Python的BeautifulSoup库和requests库为例:
首先安装必要的库:
```
pip install beautifulsoup4 requests pandas
```
然后编写一个脚本,包括获取网页内容、解析HTML、提取信息以及保存数据:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
def get_douban_top250():
base_url = "https://movie.douban.com/top250"
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"
}
movies_list = []
for i in range(1, 26): # 获取250部电影中的前25页
url = f"{base_url}?start={i*25}"
response = requests.get(url, headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'lxml')
movie_containers = soup.select(".hd") # 提取电影标题和导演信息
ratings_containers = soup.select(".rating_num") # 提取评分和评分人数
for container in zip(movie_containers, ratings_containers):
title = container[0].find('a').text
director = container[0].find('span', {'class': '導演'}).text
rating = float(container[1].text[:-1]) # 去掉最后的单位"分"
rating_count = int(container[1].find('span', {'class': 'pl'}).text.strip()) # 提取评分人数
movies_list.append({
"电影名": title,
"导演": director,
"评分": rating,
"评分人数": rating_count
})
else:
break # 如果响应状态不是200,表示请求出错,停止爬取
df = pd.DataFrame(movies_list)
df.to_csv("douban_top250.csv", index=False) # 保存数据到CSV文件
get_douban_top250()
阅读全文