Python爬虫获取豆瓣电影并写入excel
本文将介绍如何使用Python编写简单的爬虫程序,获取豆瓣电影的信息,并将获取到的数据写入Excel表格中。我们将使用Python的requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML文档,以及使用openpyxl库来操作Excel文件。通过本文的学习,您将掌握如何使用Python进行数据爬取和数据处理的基本技能。
1. 准备工作
在开始编写爬虫程序之前,我们需要先安装所需的库:
pip install requests
pip install beautifulsoup4
pip install openpyxl
安装完成后,我们可以开始编写爬虫程序。
2. 发送HTTP请求
首先,我们需要向豆瓣电影的网页发送HTTP请求,以获取网页的内容。我们使用的是豆瓣电影的Top250页面作为示例。可以使用requests库的get方法来发送GET请求:
import requests
url = 'https://movie.douban.com/top250'
response = requests.get(url)
html = response.text
print(html)
上述代码中,我们首先定义了要请求的URL,然后使用requests.get方法发送GET请求,并将返回的响应保存在response变量中。最后,我们使用response.text将响应内容转换为字符串,并打印出来。
3. 解析HTML文档
接下来,我们需要使用BeautifulSoup库来解析HTML文档,从中提取出我们需要的电影信息。BeautifulSoup库提供了一个方便的接口,可以轻松地从HTML文档中提取出指定的标签或属性。
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
movies = soup.find_all('div', class_='hd')
for movie in movies:
title = movie.a.span.text
print(title)
上述代码中,我们使用BeautifulSoup的find_all方法来查找所有class为"hd"的div标签,并遍历这些标签。对于每个标签,我们使用a.span.text来提取电影的标题,并打印出来。
4. 将数据写入Excel
最后,我们需要使用openpyxl库将获取到的电影数据写入Excel表格中。openpyxl库提供了一个简单而强大的接口,可以轻松地操作Excel文件。
from openpyxl import Workbook
wb = Workbook()
sheet = wb.active
sheet['A1'] = '电影标题'
row = 2
for movie in movies:
title = movie.a.span.text
sheet[f'A{row}'] = title
row += 1
wb.save('movies.xlsx')
上述代码中,我们首先创建一个Workbook对象,然后获取默认的活动工作表,并将电影标题写入第一列。然后,我们使用for循环遍历movies列表中的每个电影,将电影标题逐行写入Excel表格。最后,我们使用save方法将Workbook保存为Excel文件。
5. 总结
通过本文的学习,我们了解了如何使用Python编写简单的爬虫程序,获取豆瓣电影的信息,并将获取到的数据写入Excel表格中。我们使用了requests库发送HTTP请求,使用BeautifulSoup库解析HTML文档,以及使用openpyxl库操作Excel文件。希望本文对您在Python爬虫和数据处理方面的学习有所帮助。