在上述代码中,我们首先定义了请求头 headers,用于模拟浏览器发送请求。然后,我们使用循环遍历每个页面,并发送 HTTP 请求获取页面内容。接着,我们使用 Beautiful Soup 解析 HTML 页面,找到每个电影的名称并将其添加到 movie_names 列表中。最后,我们使用 pandas 库将电影名称保存到 Excel 文件中,并输出提示信息。
需要注意的是,由于爬取网页可能会对网站造成一定的负担,因此建议在爬取时加入适当的延迟时间,以避免过于频繁的请求。同时,爬取的数据仅供个人学习和研究使用,切勿用于商业用途。
import requests
import openpyxl
# 设置请求头
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36"
}
# 发送请求获取电影名称
url = "https://movie.douban.com/top250"
movie_names = []
for i in range(0, 250, 25):
params = {"start": i, "filter": ""}
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
html = response.text
start_index = html.find('<div class="hd">')
while start_index != -1:
end_index = html.find("</span>", start_index + 1)
movie_name = html[start_index:end_index].replace('<span class="title">', '').replace(' ', '').replace('/', '').strip()
movie_names.append(movie_name)
start_index = html.find('<div class="hd">', end_index)
# 将电影名称保存到 Excel 文件中
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = "Movies"
for i, movie_name in enumerate(movie_names):
sheet.cell(row=i+1, column=1, value=movie_name)
workbook.save("movies250.xlsx")
print("Done!")