今天教你用 Python 爬取网站的指南

这篇博客介绍了如何使用Python进行网页爬取,包括安装依赖、设定项目目标、理解HTML、使用BeautifulSoup和requests库、数据解析与整合,以及涉及Selenium的高级话题。通过爬取Family Dollar商店的地址信息,展示了实际的爬虫项目流程,强调了爬虫的合法性和道德性问题。
摘要由CSDN通过智能技术生成

通过基本的 Python 工具获得爬取完整 HTML 网站的实践经验。

(本文字数:11235,阅读时长大约:14 分钟)

有很多很棒的书可以帮助你学习 Python ,但是谁真正读了这那些大部头呢?(剧透:反正不是我)。

许多人觉得教学书籍很有用,但我通常不会从头到尾地阅读一本书来学习。我是通过做一个项目,努力的弄清楚一些内容,然后再读另一本书来学习。因此,暂时丢掉书,让我们一起学习 Python。

接下来是我的第一个 Python 爬取项目的指南。它对 Python 和 HTML 的假定知识要求很低。这篇文章旨在说明如何使用 Python 的 requests 库访问网页内容,并使用 BeatifulSoup4 库以及 JSON 和 pandas 库解析网页内容。我将简要介绍 Selenium 库,但我不会深入研究如何使用该库——这个主题值得有自己的教程。最终,我希望向你展示一些技巧和小窍门,以减少网页爬取过程中遇到的问题。

安装依赖

我的 GitHub 存储库 中提供了本指南的所有资源。如果需要安装 Python3 的帮助,请查看 Linux 、 Windows 和 Mac 的教程。

$ python3 -m venv
$ source venv/bin/activate
$ pip install requests bs4 pandas

如果你喜欢使用 JupyterLab ,则可以使用 notebook 运行所有代码。 安装 JupyterLab 有很多方法,这是其中一种:

# from the same virtual environment as above, run:
$ pip install jupyterlab

为网站抓取项目设定目标

现在我们已经安装了依赖项,但是爬取网页需要做什么?

让我们退一步,确保使目标清晰。下面是成功完成网页爬取项目需求列表:

  • 我们收集的信息,是值得我们花大力气去建立一个有效的网页爬取器的。
  • 我们所下载的信息是可以通过网页爬取器合法和道德地收集的。
  • 对如何在 HTML 代码中找到目标信息有一定的了解。
  • 利用恰当的工具:在此情况下,需要使用 BeautifulSoup 库和 requests 库。
  • 知道(或愿意去学习)如何解析 JSON 对象。
  • 有足够的 pandas 数据处理技能。

关于 HTML 的备注:HTML 是运行在互联网上的“猛兽”,但我们最需要了解的是标签的工作方式。标签是一对由尖括号包围关键词(一般成对出现,其内容在两个标签中间)。比如,这是一个假装的标签,称为 pro-tip:

<pro-tip> All you need to know about html is how tags work </pro-tip>

我们可以通过调用标签 pro-tip 来访问其中的信息(All you need to know…)。本教程将进一步介绍如何查找和访问标签。要进一步了解 HTML 基础知识,请查看 本文 。

网站爬取项目中要找的是什么

有些数据利用网站爬取采集比利用其他方法更合适。以下是我认为合适项目的准则:

没有可用于数据(处理)的公共 API。通过 API 抓取结构化数据会容易得多,(所以没有 API )有助于澄清收集数据的合法性和道德性。而有相当数量的结构化数据,并有规律的、可重复的格式,才能证明这种努力的合理性。网页爬取可能会很痛苦。BeautifulSoup(bs4)使操作更容易,但无法避免网站的个别特殊性,需要进行定制。数据的相同格式化不是必须的,但这确实使事情变得更容易。存在的 “边际案例”(偏离规范)越多,爬取就越复杂。

免责声明:我没有参加过法律培训;以下内容无意作为正式的法律建议。

关于合法性,访问大量有价值信息可能令人兴奋,但仅仅因为它是可能的,并不意味着应该这样做。

值得庆幸的是,有一些公共信息可以指导我们的道德规范和网页爬取工具。大多数网站都有与该网站关联的 robots.txt 文件,指出允许哪些爬取活动,哪些不被允许。它主要用于与搜索引擎(网页抓取工具的终极形态)进行交互。然而,网站上的许多信息都被视为公共信息。因此,有人将 robots.txt 文件视为一组建议,而不是具有法律约束力的文档。 robots.txt 文件并不涉及数据的道德收集和使

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值