写一个python爬取豆瓣电影top250并将数据存储为csv文件的爬虫
时间: 2024-01-08 16:04:30 浏览: 100
python爬虫豆瓣电影Top250数据分析与可视化(应用Flask框架、Echarts、WordCloud等技术).zip
你好,非常感谢你的提问。关于爬取豆瓣电影top250并将数据存储为csv文件的爬虫,我可以给你提供一些思路和代码。
首先,你需要安装两个Python库:requests和BeautifulSoup4。在终端中输入以下命令即可安装:
```
pip install requests
pip install BeautifulSoup4
```
然后,你需要用requests库发送网络请求,获取豆瓣电影top250的页面源代码。代码如下:
```python
import requests
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'
}
response = requests.get(url, headers=headers)
html = response.text
```
接下来,你需要解析页面源代码,提取出所需的电影数据。这里我们可以使用BeautifulSoup4库来解析页面,代码如下:
```python
from bs4 import BeautifulSoup
import csv
soup = BeautifulSoup(html, 'html.parser')
movies = []
for info in soup.find_all('div', {'class': 'info'}):
movie = []
title = info.find('span', {'class': 'title'}).text
movie.append(title)
other = info.find('div', {'class': 'bd'}).find('p').text
director = other.split('\n')[1].strip().replace('导演: ', '')
actors = other.split('\n')[2].strip().replace('主演: ', '').replace('...', '')
year_and_country = other.split('\n')[3].strip()
rating = info.find('span', {'class': 'rating_num'}).text
movie.append(director)
movie.append(actors)
movie.append(year_and_country)
movie.append(rating)
movies.append(movie)
```
最后,你可以使用Python自带的csv库将电影数据存储为csv文件,代码如下:
```python
with open('douban_top250.csv', 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['电影名称', '导演', '主演', '年份和国家', '豆瓣评分'])
writer.writerows(movies)
```
完整代码如下:
阅读全文