python爬取内容存入Excel实例

yizhihongxing

下面是详细讲解 "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使用for实现无限循环的多种方式汇总

    Python使用for实现无限循环的多种方式汇总 在Python中,我们可以使用for语句创建一个无限循环。无限循环是一种在程序中经常使用的循环方式,它可以使程序不断循环执行某些操作,直到人为终止或者程序出错为止。 下面我们来看看Python使用for实现无限循环的多种方式。 方式一 使用while True无限循环来实现。 while True: prin…

    python 2023年6月3日
    00
  • python 如何引入协程和原理分析

    Python 引入协程的方式有两种:使用生成器(generator)和使用定制的特殊函数(async/await)。 引入协程的两种方式 生成器 在 Python 2.5 中,Python 引入了 yield 关键字,让 Python 的生成器(generator)可以用于协程。生成器是一种可以从中退出并在稍后重新进入的函数。 以下示例使用 yield 关键…

    python 2023年6月3日
    00
  • 解决python3爬虫无法显示中文的问题

    当我们使用Python 3进行爬虫时,有时会遇到无法正确显示中文字符的问题。这是因为Python 3默认使用Unicode字符编码,而网站的字符编码通常是UTF-8,所以需要进行字符编码的转换。以下是解决Python 3爬虫无法显示中文的完整攻略: 1. 检查网站字符编码 在进行字符编码转换前,我们需要先检查网站的字符编码。我们可以通过查看网站头部信息找到字…

    python 2023年5月20日
    00
  • 在Python中操作列表之List.append()方法的使用

    以下是详细讲解“在Python中操作列表之List.append()方法的使用”的完整攻略。 List.append()方法的使用 在Python中,List.append()方法用于在列表的末尾添加一个元素。该方法的语法如下: list.append(elem) 其中,list表示要添加元素的列表,elem表示要添加的元素。 下面是一个简单的示例,演示了如…

    python 2023年5月13日
    00
  • python 如何实现跳过异常继续执行

    在Python中,我们可以使用try-except语句来处理异常。当程序遇到异常时,try-except语句可以捕获异常并执行相应的操作。有时候,我们希望在遇到异常时跳过异常并继续执行程序。以下是实现跳过异常继续执行的完整攻略: 1. 使用try-except语句 在Python中,我们可以使用try-except语句来处理异常。当程序遇到异常时,try-e…

    python 2023年5月13日
    00
  • python 爬虫 实现增量去重和定时爬取实例

    Python爬虫:实现增量去重和定时爬取实例 1. 增量去重(Incremental Scraping) 在进行爬取时,我们可能会遇到已经爬取过的网页,但是网页内容并没有更新的情况。这时,如果我们还对这些页面进行爬取,不仅会浪费时间和资源,而且会导致重复的数据。 针对这种情况,我们可以使用增量去重技术,即只爬取新产生的数据,跳过已经存在的数据,达到提高效率和…

    python 2023年5月14日
    00
  • Python+Tkinter实现RGB数值转换为16进制码

    首先让我们来介绍一下Python及Tkinter。 Python是一种高级编程语言,它被广泛用于Web开发、数据分析、人工智能等领域。而Tkinter则是Python的标准图形界面(GUI)库之一,它提供了一系列的工具和组件,方便开发者快速构建视觉效果良好的用户界面。 本文主要介绍如何用Python+Tkinter实现RGB数值转换为16进制码的过程。在介绍…

    python 2023年6月13日
    00
  • 浅谈Python 集合(set)类型的操作——并交差

    关于Python集合(set)类型的操作,我们涉及到比较常用的三个操作:并集、交集、差集。下面将针对这三个操作进行详细的讲解。 1. 操作一:并集 Python中,集合用{}或set()表示,当我们需要对两个集合进行合并操作时,可以使用并集操作。并集是一种去重后合并的操作,即将两个集合中的所有元素进行合并,并去除其中的重复元素。 示例一: set1 = {1…

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