网页抓取是使用计算机程序以自动方式从网站提取和解析数据的过程。这是创建用于研究和学习的数据集的有用技术。虽然网页抓取通常涉及解析和处理 HTML 文档,但某些平台还提供 REST API 来以机器可读格式(如 JSON)检索信息。在本教程中,我们将使用网络抓取和 REST API 创建真实的数据集。
学习材料的最佳方法是执行代码并亲自进行实验。本教程是一个可执行的 Jupyter 笔记本。
您还可以选择“Run on Colab”或“Run on Kaggle”,但您需要在 Google Colab 或 Kaggle 上创建帐户才能使用这些平台等。
GitHub URL“ https://github.com/dineshmalappagari/Web-Scraping ”来检查项目。
——浏览不同的网站并选择进行抓取。查看“项目创意”部分以获取灵感。
— - 确定您想要从网站上抓取的信息。决定输出 CSV 文件的格式。
— -在 Juptyer 笔记本中总结您的项目想法并概述您的策略。使用上面的“新建”按钮。
1)我要抓取“ https://github.com/topics”
2)在网站中,我们按字母顺序排列主题。在主题中,我将从主题中选取前 25 个存储库
3)从每个存储库中,我将获取 Repo_name、用户名、Stars 和 URL
— -检查网站的 HTML 源代码并确定要下载的正确 URL。
— -使用requests库将网页下载并保存到本地。
— -创建一个功能来自动下载不同主题/搜索查询。
requests
我们应该安装 !pip 安装请求
requests.get
返回一个响应对象,其中包含页面内容和一些使用状态代码指示请求是否成功的信息。在此处了解有关 HTTP 状态代码的更多信息:
让我们将内容保存到具有.html
扩展名的文件中。
现在,您可以使用 Jupyter 中的“文件 > 打开”菜单选项并单击显示的文件列表中的3D .html查看该文件。这是打开文件时您将看到的内容:
如果我想编辑文件
正如前面提到的,网页是用一种称为 HTML(超文本标记语言)的语言编写的。HTML 是一种 相 当简单的语言,由标签(也称为节点或元素)组成,例Go to Jovian
。HTML 标 签由三部分组成:
html
、head
、body
、div
等)指示标签代表什么以及浏览器应如何解释其中的信息。href
、target
、class
、id
等)浏览器使用标签的属性来自定义标签的显示方式并决定用户交互时发生的情况。Some content
。这是一个简单的 HTML 文档,其中使用了许多常用标签:
All About Python
Python - A Programming Language
About Python
Python is an interpreted, high-level and general-purpose programming language. Python's design philosophy emphasizes code readability with its notable use of significant indentation. Its language constructs and object-oriented approach aim to help programmers write clear, logical code for small and large-scale projects. Visit the official documentation to learn more.
Some Python Libraries
- Numpy
- Pandas
- PyTorch
- Scikit Learn
Recent Python Versions
Version
Released on
Python 3.8
October 2019
Python 3.7
June 2018
练习:复制上面的 HTML 代码并将其粘贴到名为
webpage.html
. 要创建新文件,请从菜单栏中选择“文件 > 打开”,然后选择“新建 > 文本”文件。查看保存的文件。你能看到浏览器如何以不同的方式显示不同的标签吗?
练习:对里面的代码进行一些更改
webpage.html
。保存文件并再次查看。您看到自己的改变得到体现了吗?尝试一下文件的结构。尝试打破事物并修复它们!
以下是一些最常用的 HTML 标签:
html
head
title
body
div
span
h1
到h6
p
img
ul
,ol
和li
table
, tr
,th
和td
style
每个标签支持多个属性。以下是用于修改标签行为的一些常见属性:
要以编程方式从网页的 HTML 源代码中提取信息,我们可以使用Beautiful Soup库。让我们安装该库并BeautifulSoup
从bs4
模块导入该类。
— -使用 Beautiful soup 解析和探索下载的网页的结构。
——使用正确的属性和方法来提取所需的信息。
— -创建函数以从页面提取到列表和字典中。
— -(可选)如果需要,使用 REST API 获取其他信息。
— -为下载、解析和保存 CSV 的端到端过程创建函数。
— -使用不同的输入执行该函数以创建 CSV 文件的数据集。
— -使用 Pandas 读回 CSV 文件来验证其中的信息。
os.path 模块始终是适合 Python 运行的操作系统的路径模块,因此可用于本地路径。
导入操作系统
def scrape_topic(topic_url, path):
if os.path.exists(path):
print(“文件 {} 已存在。正在跳过…”.format(path))
return
topic_df = get_topic_repos(get_topic_page(topic_url))
topic_df.to_csv (路径,索引=无)