本次爬虫案例使用Python语言编写,使用了requests库进行网页请求,使用了BeautifulSoup库进行网页解析,使用了openpyxl库进行数据的保存。
案例中的爬虫目标是豆瓣电影Top250,通过循环访问不同页面进行数据的爬取。在每个页面上,使用requests库发送GET请求,并设置合适的请求头,以避免被网站屏蔽。然后使用BeautifulSoup库解析返回的HTML响应,提取出需要的电影信息。
电影信息包括电影名称、排名和简介。通过解析HTML结构,使用find方法获取到对应的元素,然后提取出文本内容。提取到的信息存储在一个列表中,然后通过openpyxl库将信息逐行写入Excel文件的工作表中。
最后,使用workbook.save方法将数据保存到名为"douban_movie_top250.xlsx"的Excel文件中。
需要注意的是,在实际爬取数据时,应该遵循网站的robots.txt规范,并避免对网站造成过大的负担。另外,豆瓣电影Top250是一个公开的网页,但对于其他网站,可能需要进行登陆或者处理反爬机制。
以下是一个简单的Python爬虫案例,用于爬取豆瓣电影Top250的数据,并保存到Excel文件中。
import requests
from bs4 import BeautifulSoup
import openpyxl
# 创建工作簿和工作表
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = 'Top250'
# 爬取数据
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
for i in range(10):
params = {
'start': i * 25
}
response = requests.get(url, headers=headers, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析数据
movies = soup.find_all('div', class_='info')
print(movies)
for movie in movies:
title = movie.find('span', class_='title').text
rank = movie.find('a')["href"]
info = movie.find('div', class_='bd').p.text.strip().split('\n')[0]
sheet.append([title, rank, info])
# 保存数据到Excel文件
workbook.save('douban_movie_top250.xlsx')
workbook.close()
excle数据预览:
关注公众号「码农园区」,获取多个项目源码及各大厂学习面试资源