python爬虫豆瓣top250代码保存为xlsx
时间: 2023-11-12 07:13:38 浏览: 100
以下是一个将豆瓣电影Top250数据爬取并保存为Excel文件的Python爬虫示例代码:
```python
import requests
from bs4 import BeautifulSoup
import openpyxl
# 定义保存数据到Excel文件的函数
def save_to_excel(movie_list):
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
# 获取当前工作簿的活动工作表
worksheet = workbook.active
# 设置工作表的表头
worksheet.append(['电影名称', '导演', '主演', '评分', '评价人数', '电影简介'])
# 遍历电影数据列表,将数据逐行写入工作表
for movie in movie_list:
worksheet.append(movie)
# 保存工作簿到本地
workbook.save('douban_top250.xlsx')
# 爬取豆瓣电影Top250数据
def spider_douban_top250():
# 定义一个空列表,用于保存电影数据
movie_list = []
# 循环遍历所有页面,每页显示25条数据
for page in range(0, 250, 25):
# 构造请求URL
url = f'https://movie.douban.com/top250?start={page}'
# 发送GET请求,获取响应内容
response = requests.get(url)
# 解析HTML响应内容
soup = BeautifulSoup(response.text, 'html.parser')
# 查找所有电影列表项
movie_items = soup.find_all('div', class_='hd')
# 遍历电影列表项,提取电影数据
for movie_item in movie_items:
# 提取电影名称
movie_name = movie_item.a.span.text.strip()
# 提取电影详情页URL
movie_url = movie_item.a['href']
# 提取电影详情页HTML响应内容
movie_response = requests.get(movie_url)
# 解析电影详情页HTML响应内容
movie_soup = BeautifulSoup(movie_response.text, 'html.parser')
# 查找电影导演信息
movie_director = movie_soup.find('span', class_='attrs').a.text
# 查找电影演员信息
movie_actors = movie_soup.find('span', class_='actor').find_all('a')
movie_actors = [actor.text.strip() for actor in movie_actors]
# 查找电影评分
movie_score = movie_soup.find('strong', class_='ll rating_num').text
# 查找电影评价人数
movie_votes = movie_soup.find('span', class_='rating_people').text
# 查找电影简介
movie_summary = movie_soup.find('span', class_='all hidden').text.strip()
# 将电影数据添加到电影数据列表中
movie_list.append([movie_name, movie_director, '/'.join(movie_actors), movie_score, movie_votes, movie_summary])
# 返回电影数据列表
return movie_list
# 调用爬虫函数,获取豆瓣电影Top250数据
movie_list = spider_douban_top250()
# 将电影数据保存到Excel文件
save_to_excel(movie_list)
```
此代码将豆瓣电影Top250数据爬取并保存为Excel文件,包括电影名称、导演、主演、评分、评价人数和电影简介等信息。使用openpyxl库将数据写入Excel文件中。
阅读全文