编写代码,爬取https://movie.douban.com/top250网站,并按照电影名、导演、演员、时间、国家、电影类别、评分、评价人数以及评论存储在data.csv文件中
时间: 2023-12-28 08:18:42 浏览: 112
HTML.rar_/movie/28323.html_HBuilder_movie/index.html_电影类网站
好的,我能够帮您解决这个问题。为了爬取https://movie.douban.com/top250网站的数据,我们可以使用Python中的BeautifulSoup库和requests库。我们可以使用requests库向该网站发送请求,接收到响应后,使用BeautifulSoup库进行解析。以下是一个示例代码:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 定义要爬取的网址
url = "https://movie.douban.com/top250"
# 创建一个csv文件并打开
with open('data.csv', 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ['电影名', '导演', '演员', '时间', '国家', '电影类别', '评分', '评价人数', '评论']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
# 定义爬取10页的数据
for page in range(0, 10):
start = page * 25
# 发送请求
resp = requests.get(url, params={'start': start})
# 解析html
soup = BeautifulSoup(resp.text, 'lxml')
# 查找电影信息
movie_items = soup.select('.grid_view .item')
for movie in movie_items:
# 电影名
movie_name = movie.select('.info .hd a span:first-of-type')[0].get_text()
# 导演、演员、时间、国家、电影类别
temp = movie.select('.info .bd p')[0].get_text(strip=True).split('\n')
director, actor, year_and_country, genre = temp[0], temp[1], temp[2], temp[3]
# 评分、评价人数
rating_num = movie.select('.star .rating_num')[0].get_text()
rating_people = movie.select('.star span:last-of-type')[0].get_text().strip('人评价')
# 评论
comment_resp = requests.get(movie.select('.info .hd a')[0]['href'])
comment_soup = BeautifulSoup(comment_resp.text, 'lxml')
comment = comment_soup.select('.review-item .short-content')[0].get_text(strip=True)
# 保存到csv文件中
writer.writerow({
'电影名': movie_name,
'导演': director,
'演员': actor,
'时间': year_and_country.split('/')[0],
'国家': year_and_country.split('/')[1],
'电影类别': genre,
'评分': rating_num,
'评价人数': rating_people,
'评论': comment
})
```
以上代码会将电影的电影名、导演、演员、时间、国家、电影类别、评分、评价人数以及评论存储在data.csv文件中。
阅读全文