编写代码,爬取https://movie.douban.com/top250网站,请求伪装成浏览器请求,并按照电影名、导演、演员、时间、国家、电影类别、评分、评价人数以及评论存储在data.csv文件中
时间: 2024-06-10 10:03:56 浏览: 147
Python爬取电影榜单Top100并保存csv文件(附源码下载)
5星 · 资源好评率100%
好的,我可以为您提供一些关于爬取豆瓣电影Top250网站的。以下是使用Python语言编写的代码,它可以请求伪装成浏览器请求,并按照您所需要的电影信息,爬取数据并存储在data.csv文件中。
```
import requests
from bs4 import BeautifulSoup
import csv
# 定义请求头,模拟浏览器请求
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'}
# 创建一个CSV文件,用于存储电影信息
csvfile = open('data.csv', 'w', newline='',encoding='utf-8')
writer = csv.writer(csvfile)
# 写入CSV文件的表头
writer.writerow(['电影名', '导演', '演员', '时间', '国家', '电影类别', '评分', '评价人数', '评论'])
# 循环遍历每一页数据
for i in range(0, 250, 25):
# 构造每一页的URL网址,并发送请求
url = 'https://movie.douban.com/top250?start=' + str(i)
html = requests.get(url, headers=headers).text
# 解析HTML页面
soup = BeautifulSoup(html, 'html.parser')
# 提取每一部电影的信息
movies = soup.find('div', {'class': 'article'}).find_all('li')
# 循环遍历提取出来的每一部电影信息
for movie in movies:
# 提取电影名、导演、演员、时间、国家、电影类别、评分、评价人数、评论
name = movie.find('span', {'class': 'title'}).text.replace(',', '')
directors = movie.find('div', {'class': 'bd'}).text.split('\n')[1].strip().replace('导演:', '').replace(' ', '').replace(',', ' ')
actors = movie.find('div', {'class': 'bd'}).text.split('\n')[2].strip().replace('主演:', '').replace(' ', '').replace(',', ' ')
year = movie.find('div', {'class': 'bd'}).text.split('\n')[3].strip().replace('\xa0/\xa0', '').replace(' ', '').replace('(', '').replace(')', '')
country = movie.find('div', {'class': 'bd'}).text.split('\n')[3].strip().replace('\xa0/\xa0', '').replace(' ', '').replace('(', '').replace(')', '').split('/')[0]
category = movie.find('div', {'class': 'bd'}).text.split('\n')[3].strip().replace('\xa0/\xa0', '').replace(' ', '').replace('(', '').replace(')', '').split('/')[1:]
rating = movie.find('span', {'class': 'rating_num'}).text
amount = movie.find('div', {'class': 'star'}).find_all('span')[3].text[:-3]
comment = movie.find('span', {'class': 'inq'}).text.replace(',', '')
# 将电影信息写入CSV文件中
writer.writerow([name, directors, actors, year, country, category, rating, amount, comment])
# 关闭CSV文件
csvfile.close()
```
您可以将以上代码复制到您的开发环境中,保存为.py文件并运行它,即可得到所需的数据,并以CSV格式存储在data.csv文件中。希望这能够对您有所帮助!
阅读全文