python爬取内容存入Excel实例

下面是详细讲解 "Python爬取内容存入Excel实例" 的完整实例教程:

教程概述

本教程主要通过 Python 程序爬取“糗事百科”网站的一些段子并存入 Excel 文件中。将涉及到以下几个方面:

  1. Python 爬虫的基础知识
  2. requestsbeautifulsoup4 库的使用
  3. openpyxl 库的使用,即 Python 操作 Excel 文件

实现步骤

以下是实现步骤的详细说明:

  1. 导入需要使用的库

首先需要导入 python 中和爬虫及 Excel 文件相关的库:requests、beautifulsoup4 和 openpyxl。

import requests
from bs4 import BeautifulSoup
import openpyxl
  1. 请求目标网站并解析HTML内容

使用 requests 发送请求,获取网站的 HTML 内容。然后,使用 BeautifulSoup 对 HTML 内容进行解析。

url = 'https://www.qiushibaike.com/hot/'
req = requests.get(url)
soup = BeautifulSoup(req.text, 'html.parser')
  1. 从 HTML 内容中获取需要的信息

使用 BeautifulSoup 的 select 方法,从 HTML 内容中获取需要的信息,比如段子的作者、内容和点赞数。

rows = []
for item in soup.select('.article'):
    author = item.select('.author h2')[0].string.strip()
    content = item.select('.content span')[0].get_text(strip=True)
    vote = item.select('.stats-vote i')[0].string.strip()
    row = [author, content, vote]
    rows.append(row)
  1. 将获取到的信息存入 Excel 文件

使用 openpyxl 创建 Excel 文件,并将获取到的信息存入其中。

workbook = openpyxl.Workbook()
sheet = workbook.active

sheet.append(['作者', '内容', '点赞数'])
for row in rows:
    sheet.append(row)

workbook.save('qiushibaike.xlsx')

示例说明

假设现在想爬取糗事百科网站中“热门”页面的一些段子,并将这些段子信息保存入一个 Excel 文件中。则只需要按照上述步骤进行编写代码,将 URL 修改为目标网站的 URL,并在步骤 3 中根据实际情况修改所需要获取的信息,即可完成任务。这里,我提供两条示例:

示例1:爬取新浪财经新闻

假设现在需要爬取新浪财经网站上的实时新闻,将这些新闻的标题和发布时间保存在一个 Excel 文件中。则只需按照以下步骤进行:

  1. 在网站中找到新闻的标题和发布时间在 HTML 页面中的具体位置,并使用 BeautifulSoup 中的 select 方法获取到这些内容。
  2. 使用 openpyxl 创建 Excel 文件,并将获取到的新闻信息保存至其中。
# 导入相关库
import requests
from bs4 import BeautifulSoup
import openpyxl

# 发送请求,获取 HTML 内容,并对内容进行解析
url = 'http://finance.sina.com.cn/'
req = requests.get(url)
soup = BeautifulSoup(req.text, 'html.parser')

# 从 HTML 内容中获取需要的信息
rows = []
for item in soup.select('.list01 li'):
    title = item.select('.listContent a')[0].string.strip()
    date = item.select('.time')[0] .string.strip()
    row = [title, date]
    rows.append(row)

# 使用 openpyxl 创建 Excel 文件,并将信息写入其中
workbook = openpyxl.Workbook()
sheet = workbook.active

sheet.append(['标题', '发布时间'])
for row in rows:
    sheet.append(row)

workbook.save('sina_finance.xlsx')

示例2:爬取微信公众号文章

假设现在需要爬取某个微信公众号的所有文章,将文章的标题、发布时间及阅读量分别保存在 Excel 文件中。操作步骤如下:

  1. 打开目标微信公众号,运行 Chrome 浏览器进行XHR调试。找到接口的 URL、Headers、Method、Params 等信息。
  2. 使用 requests 向微信公众号服务器发出网络请求,获取 JSON 数据。
  3. 使用 openpyxl 创建 Excel 文件,并将获取到的文章信息保存至其中。
# 导入相关库
import requests
import json
from datetime import datetime
import openpyxl

# 发送请求,获取 JSON 数据
num = 10
offset = 0
url = f'https://mp.weixin.qq.com/mp/profile_ext?action=getmsg&__biz=MzI3NTQ5OTEyNw==&f=json&offset={offset}&count={num}&uin=777&key=777&pass_ticket=777&wxtoken=&appmsg_token=&x5=0&f=json'
headers = {
            'Host': 'mp.weixin.qq.com',
            'Referer': 'https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzI3NTQ5OTEyNw==&scene=124&devicetype=iOS11.0.3&version=16060125&lang=zh_CN&nettype=WIFI&a8scene=3&fontScale=100&pass_ticket=777&wx_header=1',
            'X-Requested-With': 'XMLHttpRequest',
            'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Mobile Safari/537.36'
        }
req = requests.get(url, headers=headers)
data = json.loads(req.text)

# 从 JSON 数据中获取需要的信息
rows = []
for item in data['general_msg_list']['list']:
    title = item['app_msg_ext_info']['title']
    date = datetime.fromtimestamp(item['comm_msg_info']['datetime']).strftime('%Y-%m-%d %H:%M:%S')
    read_num = item['app_msg_ext_info']['read_num']
    row = [title, date, read_num]
    rows.append(row)

# 使用 openpyxl 创建 Excel 文件,并将信息写入其中
workbook = openpyxl.Workbook()
sheet = workbook.active

sheet.append(['标题', '发布时间', '阅读量'])
for row in rows:
    sheet.append(row)

workbook.save('wechat_article.xlsx')

总结

本文提供的教程,详细介绍了爬取网站并将信息保存在 Excel 文件的实现方法。掌握了这些操作方法,相信大家可以自己开发更加复杂的爬虫应用,实现更多功能和需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬取内容存入Excel实例 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python基于BeautifulSoup爬取京东商品信息

    Python基于BeautifulSoup爬取京东商品信息 在本文中,我们将介绍如何使用Python和BeautifulSoup库爬取京东商品信息。我们将使用Python的requests库发送HTTP请求,然后使用BeautifulSoup库解析HTML响应。最后,我们将提取商品信息并将其保存到CSV文件中。 安装依赖库 在使用Python工具之前,我们需…

    python 2023年5月14日
    00
  • python爬虫添加请求头代码实例

    Python爬虫添加请求头是提高爬虫稳定性和防封IP的一种方式。实现添加请求头的方法可以有多种,下面将为大家介绍一种比较简单直观的方法。 添加请求头的代码实现 import requests # 创建headers字典,内容可以根据实际情况酌情修改 headers = { ‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0…

    python 2023年6月3日
    00
  • Python自动化测试笔试面试题精选

    针对“Python自动化测试笔试面试题精选”的完整攻略,我来给出详细讲解。 一、背景介绍 Python自动化测试是当前比较火热的话题之一,技能的要求也越来越高。为此,许多公司在面试面试或进行笔试的时候,会涉及Python自动化测试相关的题目。这个时候,我们就需要掌握相应的知识和技能,进而成功的应对笔试或面试。 二、攻略建议 下面我来分享一些攻略建议,帮助大家…

    python 2023年5月18日
    00
  • 浅谈Python的list中的选取范围

    在Python中,List是一种常用的数据类型,它可以用来存储多个元素。本文将深入讲解Python的list中的选取范围,并提供两个示例说明。 取范围 可以使用切片(slice)来选取List中的一部分元素。切片的语法为: my_list[start:end:step] 其中,start表示起始位置,end表示结束位置(不包含该位置的元素),step表示步长…

    python 2023年5月13日
    00
  • Python实现简单的多任务mysql转xml的方法

    下面是“Python实现简单的多任务mysql转xml的方法”的完整攻略: 1. 准备工作 在实现多任务mysql转xml功能之前,需要先完成以下准备工作:- 安装Python环境- 安装MySQL-python模块- 安装lxml模块 2. 连接MySQL数据库 使用MySQL-python模块,通过以下步骤连接MySQL数据库: import MySQL…

    python 2023年6月3日
    00
  • python使用Random随机生成列表的方法实例

    Python使用Random随机生成列表的方法实例 在Python中,我们可以使用random模块来生成随机数。本攻略将详细介绍如何使用random模块来生成随列表。 生成随机整数列表 以下是一个示例代码,演示如何使用random模块生成随机整数列表: import random # 生成随机整数列表 random_list = [random.randin…

    python 2023年5月13日
    00
  • python 如何用map()函数创建多线程任务

    下面是关于“Python如何用map()函数创建多线程任务”的攻略: 什么是map()函数 在Python中,map()函数是一种对集合中的所有元素执行某种操作的方法,它能够方便地将一种操作应用到一个集合中的所有成员。map()函数的语法如下: map(function, iterable, …) 其中,function代表要对集合中每个元素执行的操作,…

    python 2023年5月18日
    00
  • python实现七段数码管和倒计时效果

    下面是Python实现七段数码管和倒计时效果的完整攻略,包含以下几个部分: 环境搭建:安装Python环境和所需的库 绘制七段数码管:使用Python的turtle库绘制七段数码管 实现倒计时:利用Python的时间处理模块和七段数码管实现倒计时效果 环境搭建 首先,需要安装Python环境,可以从官网下载安装包安装。然后,需要安装turtle库和time库…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部