爬取任意影视平台排名前300名的电影信息,并将其保存到一个csv文件。 要求: 1.使用Requests库获取豆瓣排名前250名的HTML页面信息。 2.使用bs4库解析HTML页面,提取出其中的排名序号、电影标题、评分、推荐语、网址
时间: 2024-10-10 10:08:01 浏览: 48
为了爬取任意影视平台排名前300名的电影信息并将其保存到CSV文件中,你可以按照以下步骤操作。这里假设你要爬取的是豆瓣电影Top250,因为题目提到了"豆瓣排名前250名"。你需要安装`requests`, `beautifulsoup4` 和 `pandas` 库,如果你还没有安装,可以使用pip进行安装:
```bash
pip install requests beautifulsoup4 pandas
```
接下来是一个简单的Python脚本示例:
```python
import requests
from bs4 import BeautifulSoup
import csv
import pandas as pd
# Step 1: 获取网页内容
def get_html(url):
response = requests.get(url)
if response.status_code == 200:
return response.text
else:
print(f"请求失败,状态码:{response.status_code}")
return None
url = "https://movie.douban.com/top250"
html_content = get_html(url)
# Step 2: 解析HTML
if html_content is not None:
soup = BeautifulSoup(html_content, 'lxml')
# 根据实际HTML结构找到对应的数据元素,例如class="hd"
movie_data = soup.find_all('div', class_='hd')
# Step 3: 提取数据并保存到列表中
movies_info = []
for movie in movie_data:
rank = movie.find('span', class_='num').text.strip()
title = movie.a['title']
rating = movie.strong['class'][0][:-2] # 取消评分后缀如"分"
review = movie.find('span', class_='inq') or "无评价" # 如果有则显示,否则默认为“无评价”
url_movie = movie.a['href']
movies_info.append([rank, title, rating, review, url_movie])
# Step 4: 将数据保存到CSV文件
data_df = pd.DataFrame(movies_info, columns=['排名', '电影标题', '评分', '推荐语', 'URL'])
data_df.to_csv('豆瓣电影Top250.csv', index=False)
#
阅读全文