爬取目标网站排行榜信息 目标网站:https://movie.douban.com/chart 目标内容:爬取排行榜中电影信息包括名称、上映时间,发行国家、评分情况。 任务要求:使用XPath或者Beautiful Soup4完成。将结果保存为CSV文件。
时间: 2024-12-19 09:14:12 浏览: 9
ghibli-movie-finder:时尚的吉卜力工作室电影查找器
要爬取豆瓣电影排行榜(https://movie.douban.com/chart)的信息,可以使用Python编程语言结合BeautifulSoup库来进行网页解析,因为BeautifulSoup对于处理HTML结构非常方便。XPath也可以用来定位元素,但在这个场景下,由于BeautifulSoup对CSS选择器支持更好,我们倾向于使用它。
首先,确保已经安装了`requests`, `beautifulsoup4`, 和 `pandas` 这三个库,如果尚未安装,可以使用pip命令:
```bash
pip install requests beautifulsoup4 pandas
```
接下来,是一个简单的Python脚本示例,演示如何使用BeautifulSoup爬取并保存数据到CSV文件:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 发送GET请求获取网页源码
url = "https://movie.douban.com/chart"
response = requests.get(url)
# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
# 定位需要的数据节点,例如使用CSS选择器
movies_data = soup.select('.grid_view .item .hd')
# 创建空列表存储电影信息
movies_list = []
# 遍历电影信息
for movie in movies_data:
title = movie.find('span', {'class': 'title'}).text.strip()
year = movie.find('span', {'property': 'v:initial-release'}).text.strip()
country = movie.find('span', {'itemprop': 'country-of-origin'}).text.strip() if movie.find('span', {'itemprop': 'country-of-origin'}) else ''
rating = movie.find('span', {'class': 'rating_num'}).text.strip()
# 将信息添加到列表
movie_info = {
'电影名称': title,
'上映时间': year,
'发行国家': country,
'评分': rating
}
movies_list.append(movie_info)
# 将数据保存到CSV文件
with open('douban_movie_ranking.csv', 'w', newline='', encoding='utf-8') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=list(movies_list[0].keys()))
writer.writeheader()
writer.writerows(movies_list)
阅读全文