python抓取动态网页(Web爬网如何使用python中BeautifulSoup进行WEB抓取!(图))
优采云 发布时间: 2021-10-15 15:23python抓取动态网页(Web爬网如何使用python中BeautifulSoup进行WEB抓取!(图))
互联网绝对是海量数据的来源。不幸的是,如果没有易于组织下载和分析的 CSV 文件,大多数都是。如果您想从许多网站 中捕获数据,则需要尝试网页抓取。
如果你还是初学者,请不要担心数据分析中如何使用python中的beautiful Soup进行网页抓取,我们将从头开始介绍如何使用Python进行网页抓取,首先回答一些关于网页的常见问题刮痧问题。
如果您已经熟悉了这个概念,请随意滚动浏览这些内容,然后直接进入数据分析。如何在python中使用Beautiful Soup进行WEB爬虫!
什么是 Python 中的网页抓取?
网站 提供的一些数据集可以以 CSV 格式下载或通过应用程序编程接口 (API) 访问。但是许多具有有用数据的 网站 并没有提供这些方便的选项。
例如,考虑来自国家气象局的 网站。它收录每个位置的最新天气预报,但无法通过 CSV 或 API 访问天气数据。
如果我们要分析这些数据,或者下载它用于其他应用程序,我们不会故意复制和粘贴所有内容。网页抓取是一种技术,可以让我们使用编程来完成繁重的工作。我们会写一些代码,在NWS网站上搜索,只获取我们要使用的数据,然后输出需要的格式。
在数据分析如何在 Python 中使用 Beautiful Soup 进行网页抓取中,我们将向您展示如何使用 Python 3 和 Beautiful Soup 库执行网页抓取。我们将从国家气象局获取天气预报并使用 pandas 库进行分析。
网络爬虫是如何工作的?
在抓取网页时,我们编写代码将请求发送到托管我们指定页面的服务器。通常,我们的代码会像浏览器一样下载页面的源代码。然而,它不是直观地显示页面,而是在页面中过滤以查找我们指定的 HTML 元素并提取我们指示它提取的任何内容。
比如我们想从网站中获取H2标签中的所有title,我们可以写一些代码来实现。我们的代码将从它的服务器请求 网站 的内容并下载它。然后,它将通过页面的 HTML 查找 H2 标记。只要找到 H2 标签,它就会复制标签中的所有文本,并以我们指定的任何格式输出。
需要注意的一件事:从服务器的角度来看,通过 Web 获取请求页面与在 Web 浏览器中加载页面相同。当我们使用代码提交这些请求时,我们可能会比普通用户更快地“加载”页面,这会很快耗尽所有者的服务器资源。
为什么要使用 Python 进行网络爬虫?
许多其他编程语言可用于网页抓取。例如,我们还有一个关于使用 R 进行网页抓取的教程。
然而,使用 Python 和 Beautiful Soup 库是最流行的网络抓取方法之一。这意味着一旦你掌握了美丽汤的基础知识,就会有很多教程、操作视频和一些示例代码来帮助你加深知识。
我们将在数据分析的最后介绍一些其他的网页抓取常见问题如何在 python 中使用 Beautiful Soup 进行网页抓取,但现在是时候开始研究我们的网页抓取项目了!每个网页抓取项目都应该从开始回答以下问题:
网站 搜索合法吗?
不幸的是,这里没有简单的答案。一些 网站 明确允许网络爬行。其他人明确禁止这样做。许多 网站 没有以一种或另一种方式提供任何明确的指导。
在抓取任何网站之前,我们应该检查一个条款和条件页面,看看是否有关于抓取的明确规则。如果是这样,我们应该跟随他们。如果不是,那更像是一种判断。
但是请记住,网页抓取会消耗主机 网站 的服务器资源。如果我们只刮一页,它不会引起问题。但是,如果我们的代码每十分钟抓取 1,000 页,对于 网站 所有者来说,这很快就会变得昂贵。
因此,除了遵循 网站 上发布的有关网络抓取的所有明确规则外,遵循以下最佳实践也是一个好主意:
1)划痕永远不会超过您的需要
2)考虑缓存你抓取的内容,以便在处理用于过滤和分析的代码时只下载一次,而不是每次运行代码时重新下载
3)考虑在代码中使用函数time.sleep()来构造暂停,比如避免在太短的时间内出现过多的请求而瘫痪不堪重负的服务器。
在用python中的Beautiful Soup进行网页抓取的数据分析的情况下,NWS的数据是公共领域的,其术语并没有禁止网页抓取,所以我们可以继续。
网页的组成部分
当我们访问网页时,我们的 Web 浏览器会向 Web 服务器发送请求。此请求称为 GET 请求,因为我们正在从服务器获取文件。然后,服务器发回文件,告诉我们的浏览器如何为我们呈现页面。有几种主要类型的文件:
1)HTML — 收录页面的主要内容。
2)CSS — 添加样式以使页面看起来更好。
3)JS — Javascript 文件为网页添加交互性。
4)Picture-Picture 格式如 JPG 和 PNG 允许网页显示图片。
浏览器收到所有文件后,会渲染页面并展示给我们。为了让页面精美呈现,很多事情都在幕后发生,但是当我们爬网时,我们不需要担心其中的大部分。在做网页爬虫的时候,我们对网页的主要内容感兴趣,所以我们来看一下HTML。
HTML
超文本标记语言 (HTML) 是一种用于创建网页的语言。HTML 不像 Python 那样是一种编程语言,而是一种告诉浏览器如何布局内容的标记语言。HTML 允许您执行类似于文字处理器中的操作,例如 Microsoft Word 使文本加粗、创建段落等。由于 HTML 不是编程语言,因此它几乎没有 Python 复杂。
让我们快速浏览一下 HTML,以便我们了解如何足够有效地抓取。HTML 由称为标签的元素组成。最基本的标签是标签。此标记告诉 Web 浏览器其中的所有内容都是 HTML。我们可以使用以下标记来制作一个简单的 HTML 文档:
我们还没有向页面添加任何内容,因此如果我们在 Web 浏览器中查看 HTML 文档,我们将看不到任何内容:
在 html 标签内,我们放置了另外两个标签,head 标签和 body 标签。网页的主要内容进入body标签。head 标签收录有关页面标题的信息和其他通常对抓取页面没有用的信息:
我们仍然没有向页面添加任何内容(在 body 标签内),所以我们再也看不到任何内容:
正如您在上面可能已经注意到的,我们将 head 和 body 标签放在 html 标签中。在 HTML 中,标签是嵌套的,可以放在其他标签内。