使用 Jupyter 笔记本进行网络抓取

使用 Jupyter 笔记本进行网络抓取

在本指南中,我将向您介绍如何使用 🌠Jupyter Notebooks🌠 用于网络搜索。我们将一步一步地讲解一切--从编写搜索代码到理解数据和创建有价值的可视化。相信我,这会让你的搜刮任务更顺利、更高效!让我们开始吧

什么是 Jupyter 笔记本?

Jupyter 笔记本是一种交互式文档,它将实时代码、可视化效果和叙述性文本结合在一个可共享的文档中。由于其实时灵活性和记录工作的能力,它们被广泛应用于数据科学、机器学习和研究领域。在 Jupyter Notebooks 中,您可以在小单元中编写 Python 代码,独立运行它们,并立即观察输出结果。

这些笔记本支持多种语言,但 Python 是最常用的语言,因为它简单易用,而且有许多可用的库。Jupyter 可让你在一个笔记本中与数据交互、创建图表和调试代码。它尤其适用于数据探索,是网络搜索的理想工具。

无代码替代方案

您可以查看我的文章,其中列出了 最高级别的无代码搜索器.或者,您也可以查阅本 TL;DR:

  1. Bright Data - 用于大容量数据提取的企业级工具。
  2. Octoparse - 灵活的多功能工具,提供免费和高级计划。
  3. ParseHub - 适合初学者,免费计划不错,但存在一些漏洞。
  4. Apify - 预制模板,非常适合利基用例。
  5. Web Scraper - 通过浏览器扩展进行本地化刮擦,方便用户使用。

我与其中任何一家公司都没有任何关系。现在,让我们回到 Jupyter 🌟!

为什么使用 Jupyter 笔记本进行网络抓取?

Jupyter Notebooks 特别适合网络搜索,原因有几个:

互动开发

Jupyter 的交互特性允许您以称为单元格的小块形式编写和执行代码。这意味着您可以测试刮擦代码的各个部分,检查结果,并根据需要进行调整。这种迭代方法可帮助您快速发现并解决问题。

文件和说明

利用 Jupyter Notebook 中的 Markdown 功能,您可以用纯文本记录每个流程步骤、解释代码逻辑并提供注释。日后重温时,他人(或您自己)会更容易理解您的工作。这是创建教程和分享知识的绝佳方式。

数据分析和可视化

一旦获取了数据,Jupyter 笔记本就能让你在同一环境中处理、分析和可视化这些数据。您可以使用 pandas、matplotlib 和 seaborn 等库处理数据并创建富有洞察力的可视化效果。

可复制性与共享

Jupyter 笔记本可以作为 .ipynb 文件轻松共享,允许他人在自己的系统上查看和运行代码。您还可以将笔记本导出为 HTML 或 PDF 等其他格式,以便更完美地分享您的成果。

如何使用 Jupyter 笔记本进行网络抓取?

在开始刮擦之前,您需要设置您的环境。下面是一份简单的入门指南。

步骤 1:安装 Python 和 Jupyter

确保您有 Python 3.6 或更高版本 安装在您的机器上。如果没有,可以从 Python 官方网站下载。

安装 Python 后,可以使用以下命令安装 Jupyter Notebooks 核心,Python 的软件包管理器。

pip install jupyter

步骤 2:创建虚拟环境

为你的项目创建一个虚拟环境,让依赖关系井井有条,是个不错的做法。您可以使用以下命令创建新的虚拟环境:

python -m venv scraper

然后,激活环境:

  • 视窗 scraper\Scripts\activate
  • macOS/Linux source scraper/bin/activate

第 3 步:安装所需程序库

接下来,安装必要的库,用于网络搜索和数据分析。这些库包括 requestsBeautifulSouppandas和 seaborn 用于刮擦和可视化数据。

pip install requests beautifulsoup4 pandas seaborn

安装好库后,就可以用以下命令启动 Jupyter Notebook:

jupyter 笔记本

该命令将在浏览器中打开 Jupyter 面板,您可以在其中创建一个新笔记本,然后开始编写网络搜索代码。

使用 Jupyter 笔记本逐步进行网络抓取

现在,一切准备就绪,让我们开始使用 Jupyter Notebooks 进行网络搜索。

步骤 1:确定目标网站

在本教程中,让我们从一个名为 世界指数.该网站提供包括二氧化碳排放在内的各种全球主题的详细统计数据。

我们要抓取的页面包含一个有关美国二氧化碳排放量的表格。

步骤 2:发送 HTTP 请求以获取数据

要抓取数据,首先需要向网站服务器发送 HTTP 请求。我们将使用 requests 库。下面是获取页面内容的方法:

import requests
# 目标网站的 URL
url = 'https://www.worldometers.info/co2-emissions/us-co2-emissions/'
# 向网站发送 GET 请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
print(成功获取网页!')
else:
print(检索页面失败)

第 3 步:解析 HTML 内容

获得页面内容后,我们需要提取我们感兴趣的数据。我们将使用 BeautifulSoup 来解析 HTML 并找到数据表。

from bs4 import BeautifulSoup
# 解析 HTML 内容
soup = BeautifulSoup(response.text、 html.parser)
# 查找包含二氧化碳排放数据的表格
table = soup.find(表格)

步骤 4:提取表格数据

接下来,我们需要从表格中提取表头和行。我们可以循环查看表格中的每一行,并将数据收集到一个列表中。

# 提取表头
标题 = [header.text.strip() for header in table.find_all('th'(th)]
# 提取数据行
行 = []
for row in table.find_all(tr)[1:]: # 跳过页眉行
单元格 = row.find_all(td)
row_data = [cell.text.strip() for 电池 in 单元格]
rows.append(row_data)
# 打印页眉和第一行以检查数据
print(页眉)
print(行[0])

第 5 步:将数据保存为 CSV 文件

以结构化格式获取数据后,可将其保存到 CSV 文件,以便稍后进行分析。我们将使用 Python 内置的 csv 模块。

import csv
# 定义输出 CSV 文件
csv_file = co2_emissions.csv
# 将数据写入 CSV 文件
with open(csv_file, mode='w', newline='', encoding='utf-8') as 文件:
writer = csv.writer(file)
writer.writerow(headers) # 写头
writer.writerows(rows) # 写入行
print(f "数据已保存到 {csv_file}")

步骤 6:分析数据

既然数据已经保存到 CSV 文件中,我们就可以 use pandas 将其加载到 DataFrame 便于分析。

import pandas as pd
# 将数据加载到 pandas DataFrame 中
df = pd.read_csv(csv_file)
# 显示前几行数据
df.head()

第 7 步:数据可视化

最后,让我们使用 seaborn 和 matplotlib.例如,我们可以绘制线形图来显示二氧化碳排放量多年来的变化情况。

import seaborn as sns
import matplotlib.pyplot as plt
# 将 "化石二氧化碳排放量 "栏转换为数字
df[化石二氧化碳排放量(吨)] = df[化石二氧化碳排放量(吨)].str.replace(',', '').astype(float)
# 确保 "年份 "栏为数字
df[] = pd.to_numeric(df[])。], errors='coerce')
# 按年份对数据进行排序
df = df.sort_values(by=)
# 绘制多年来二氧化碳排放量的折线图
plt.figure(figsize=(10, 6))
sns.lineplot(data=df, x=, y=化石二氧化碳排放量(吨),标记='o')
plt.title(美国历年的二氧化碳排放量, fontsize=16)
plt.xlabel(, fontsize=12)
plt.ylabel(化石二氧化碳排放量(吨), fontsize=12)
plt.grid(True)
plt.show()

Jupyter 笔记本在网络抓取中的用例

Jupyter 笔记本非常适合许多网络刮擦应用场景,尤其是将刮擦、分析和可视化结合在一处时。下面是一些使用案例:

教育目的

Jupyter 笔记本是创建交互式教程的绝佳工具。您可以指导初学者进行网络搜索,解释代码并实时显示结果。

数据探索与分析

Jupyter 为数据科学家或研究人员提供了一个探索刮擦数据的绝佳环境。您可以快速迭代代码、清理数据,并将趋势或模式可视化。

原型设计和测试

如果您正在开发网络刮擦工具或脚本,Jupyter 可以让您快速测试小段代码。这种迭代过程可以节省开发时间。

结论

使用 Jupyter Notebooks 进行网络搜刮是一种功能强大的方法,它将数据收集、分析和可视化结合在一个环境中。Jupyter Notebooks 的交互性使您可以轻松地测试、调试和记录代码,是执行网络搜索任务的绝佳工具。

不过,如果要进行大规模刮擦或自动化,您可能需要考虑其他解决方案。尽管如此,对于许多任务来说,Jupyter 笔记本还是提供了一个方便、灵活、高效的网络数据搜刮和分析平台。

有任何问题?请在评论中告诉我!

类似文章