网站内容抓取 在你做事情之前请思考,以及请耐心。
优采云 发布时间: 2021-05-13 21:01网站内容抓取 在你做事情之前请思考,以及请耐心。
在理想世界中,所需的所有数据将以公开且有据可查的格式清晰显示,并且您可以在需要的任何地方轻松下载和使用它们。
但是,在现实世界中,数据是混乱的,很少按您的需要打包,或者经常过时。
您需要的信息通常隐藏在网站中。与某些网站可以清晰,有序地显示数据相比,网站并非如此。爬网数据,挖掘数据,处理数据和排序数据是获得整个网站结构以绘制网站拓扑以采集数据所必需的活动。这些可以以网站的格式存储或存储在专有数据库中。
也许在不久的将来,您将需要进行爬网和挖掘以获得所需的一些数据。当然,几乎可以肯定,您需要做一些编程才能使其正确。您想做什么取决于您,但是我发现Python社区是一个很好的提供者。它提供工具,框架和文档,以帮助您从网站中获取数据。
在进行下一步之前,请先提出以下要求:做任何事情之前请三思,请耐心等待。抓住这个问题并不简单。不要把网站爬下来复制它,并将他人的作品当做您自己的作品(当然,未经许可)。注意版权和许可,以及哪个标准适用于您抓取的内容。遵守robots.txt文件。请勿频繁定位网站,这会导致真正的访问者在访问时遇到困难。
了解了这些警告之后,这里有一些很棒的Python 网站采集器工具,可用于获取所需的数据。
Pyspider
让我们从pyspider开始。这是一个具有Web界面的Web采集器,可以轻松跟踪多个采集器。它具有可伸缩性,并支持多个后端数据库和消息队列。除了按时间顺序进行爬网和其他功能外,它还具有一些便捷的功能,从优先级到重新访问未能爬网的页面。 Pyspider同时支持Python 2和Python3。为了实现更快的爬网,可以在分布式环境中一次使用多个爬网程序进行爬网。
Pyspyder的基本用法已得到充分证明,包括简单的代码片段。您可以通过查看在线样本来体验用户界面。它是Apache 2许可下的开源软件,Pyspyder仍在GitHub上积极开发。
机械汤
MechanicalSoup是一个爬网程序库,它基于非常流行且用途广泛的HTML解析库Beautiful Soup。如果您的采集器需要非常简单,但是需要选中某些选择框或输入一些文本,并且您不想为此任务编写单独的采集器,那么这是一个值得考虑的选项。
MechanicalSoup是根据MIT许可开放的源代码。在GitHub上查看项目的example.py示例文件,以了解更多用法。不幸的是,到目前为止,该项目还没有好的文档。
Scrapy
Scrapy是一个具有积极社区支持的抓取框架,您可以在其中构建自己的抓取工具。除了抓取和解析工具外,它还可以轻松地以JSON或CSV等格式输出其采集的数据,并将其存储在您选择的后端数据库中。它还具有许多内置的任务扩展,例如cookie处理,代理欺骗,限制爬网深度等,并且您还可以构建自己的其他API。
要了解Scrapy,可以查看在线文档或访问其许多社区资源,包括IRC频道,Reddit子部分,并遵循其StackOverflow标签。 Scrapy的代码是三句BSD许可下的开源代码,您可以在GitHub上找到它们。
如果您根本不熟悉编程,Portia将提供易于使用的可视界面。提供了托管版本。
其他
这远非完整列表。当然,如果您是编程专家,则可以选择采用自己的方法,而不使用这些框架之一。或者,您找到用另一种语言编写的替代方法。例如,Python程序员可能更喜欢Python附带的Selenium,可以在不使用实际浏览器的情况下对其进行爬网。如果您有喜欢的爬行和挖掘工具,请在下面的评论中告诉我们。
(标题:您是机器,由Rikki Endsley修改。CCBY-SA 2. 0)