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. 代码解释

  • 导入库: 首先,我们导入所需的库:requestsBeautifulSouppandas。* 发送请求: 使用requests.get()方法发送HTTP请求获取网页内容。* 解析HTML: 使用BeautifulSoup解析HTML内容,并使用其方法查找特定元素和属性。* 提取数据: 根据HTML结构,使用find()find_all()方法提取所需数据。* 数据清洗: 对提取的数据进行清洗,例如去除空格和换行符。* 保存数据: 使用pandas库将数据转换为DataFrame,并使用to_excel()方法将数据保存到Excel文件。

4. 总结

通过以上步骤,你可以使用Python编写简单的爬虫程序,从网站上批量抓取数据并保存到Excel表格。

请注意,在进行网页抓取时,请遵守网站的robots.txt协议,并合理控制抓取频率,以免对目标网站造成负担。

Python爬虫: 批量抓取网页数据并保存到Excel

原文地址: https://www.cveoy.top/t/topic/bynF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录