Python爬虫: 批量抓取网页数据并保存到Excel
Python爬虫: 批量抓取网页数据并保存到Excel
想要从网站上批量获取数据并保存到Excel表格中?本文将教你如何使用Python编写一个简单的爬虫程序,提取网页上的有用信息并将其保存到Excel文件。
1. 准备工作
你需要安装以下Python库:
requests: 用于发送HTTP请求获取网页内容。*beautifulsoup4: 用于解析HTML页面,提取所需数据。*pandas: 用于处理数据并将数据写入Excel文件。
**可以使用pip安装这些库:**bashpip install requests beautifulsoup4 pandas
2. 代码示例
以下是一个简单的Python代码示例,演示如何抓取漫画网站上的数据并保存到Excel:pythonimport requestsfrom bs4 import BeautifulSoupimport pandas as pd
def main(): # 定义目标URL url = 'https://bgm.tv/anime/browser/airtime/2022'
# 设置请求头,模拟浏览器的请求 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36' }
# 发送HTTP请求并获取页面内容 response = requests.get(url, headers=headers) html = response.text
# 使用BeautifulSoup解析页面内容 soup = BeautifulSoup(html, 'html.parser')
# 找到漫画排行榜的父元素 rankings = soup.find('ul', class_='browserFull')
# 创建一个空列表,用于保存漫画信息 manga_list = []
# 遍历排行榜中的每个漫画 for manga in rankings.find_all('li'): # 提取漫画的标题和评分 title = manga.find('a', class_='l')['title'] score = manga.find('span', class_='rank')['title']
# 提取漫画的标签 tags = manga.find_all('span', class_='grey')
# 提取漫画的年限 year = tags[0].text.strip()
# 提取封面图链接 cover_img = manga.find('img')['src']
# 将漫画信息添加到列表中 manga_list.append({'标题': title, '评分': score, '标签': tags[1].text.strip(), '年限': year, '封面图链接': cover_img})
# 创建DataFrame对象 df = pd.DataFrame(manga_list)
# 保存DataFrame到Excel文件 df.to_excel('manga_rankings.xlsx', index=False)
print('数据保存成功!')
if name == 'main': main()
3. 代码解释
- 导入库: 首先,我们导入所需的库:
requests,BeautifulSoup和pandas。* 发送请求: 使用requests.get()方法发送HTTP请求获取网页内容。* 解析HTML: 使用BeautifulSoup解析HTML内容,并使用其方法查找特定元素和属性。* 提取数据: 根据HTML结构,使用find()和find_all()方法提取所需数据。* 数据清洗: 对提取的数据进行清洗,例如去除空格和换行符。* 保存数据: 使用pandas库将数据转换为DataFrame,并使用to_excel()方法将数据保存到Excel文件。
4. 总结
通过以上步骤,你可以使用Python编写简单的爬虫程序,从网站上批量抓取数据并保存到Excel表格。
请注意,在进行网页抓取时,请遵守网站的robots.txt协议,并合理控制抓取频率,以免对目标网站造成负担。
原文地址: https://www.cveoy.top/t/topic/bynF 著作权归作者所有。请勿转载和采集!