三种 Python 网络内容抓取工具与爬虫
优采云 发布时间: 2020-06-23 08:01运用这种太棒的 Python 爬虫工具来获取你须要的数据。
在一个理想的世界里,你须要的所有数据都将以公开而文档完备的格式清晰地诠释,你可以轻松地下载并在任何你须要的地方使用。
然而,在真实世界里,数据是零乱的,极少被打包成你须要的样子,要么常常是过期的。
你所须要的信息常常是埋藏在一个网站里。相比一些清晰地、有调养地呈现数据的网站,更多的网站则不是这样的。爬取数据crawling、挖掘数据scraping、加工数据、整理数据那些是获取整个网站结构来勾画网站拓扑来搜集数据所必须的活动,这些可以是以网站的格式存储的或则是存放在一个专有数据库中。
也许在不久的将来,你须要通过爬取和挖掘来获得一些你须要的数据,当然你几乎肯定须要进行一点点的编程来正确的获取。你要如何做取决于你自己,但是我发觉 Python 社区是一个挺好的提供者,它提供了工具、框架以及文档来帮助你从网站上获取数据。
在我们进行之前,这里有一个小小的恳求:在你做事情之前请思索,以及请耐心。抓取这件事情并不简单。不要把网站爬出来只是复制一遍,并其它人的工作当作是你自己的东西(当然,没有许可)。要注意版权和许可,以及你所爬行的内容应用哪一个标准。尊重 robots.txt 文件。不要频繁的针对一个网站,这将造成真实的访问者会碰到访问困难的问题。
在知晓那些警告过后,这里有一些太棒的 Python 网站爬虫工具,你可以拿来获得你须要的数据。
让我们先从 pyspider 开始介绍。这是一个带有 web 界面的网路爬虫,让与让之容易跟踪多个爬虫。其具有扩展性,支持多个前端数据库和消息队列。它还具有一些便捷的特点,从优先级到再度访问抓取失败的页面linux 爬虫软件,此外还有通过时间次序来爬取和其他的一些特点。Pyspider 同时支持 Python 2 和 Python 3。为了实现一个更快的爬取,你可以在分布式的环境下一次使用多个爬虫进行爬取。
Pyspyder 的基本用法都有良好的 文档说明 ,包括简单的代码片断。你能通过查看一个 在线的样例 来体验用户界面。它在 Apache 2 许可证下开源,Pyspyder 仍然在 GitHub 上积极地开发。
MechanicalSoup 是一个基于非常流行而异常多能的 HTML 解析库 Beautiful Soup 建立的爬虫库。如果你的爬虫须要相当的简单,但是又要求检测一些选择框或则输入一些文字,而你又不想为这个任务单独写一个爬虫,那么这会是一个值得考虑的选择。
MechanicalSoup 在 MIT 许可证下开源。查看 GitHub 上该项目的 example.py 样例文件来获得更多的用法。不幸的是,到目前为止,这个项目还没有一个挺好的文档。
Scrapy 是一个有着活跃社区支持的抓取框架,在那里你可以建造自己的抓取工具。除了爬取和解析工具,它能够将它搜集的数据以 JSON 或者 CSV 之类的格式轻松输出,并储存在一个你选择的前端数据库。它还有许多外置的任务扩充linux 爬虫软件,例如 cookie 处理、代理误导、限制爬取深度等等,同时还可以构建你自己附加的 API。
要了解 Scrapy,你可以查看网上的文档或则是访问它众多的社区资源,包括一个 IRC 频道、Reddit 子版块以及关注她们的 StackOverflow 标签。Scrapy 的代码在 3 句版 BSD 许可证下开源,你可以在 GitHub 上找到它们。
如果你完全不熟悉编程,Portia 提供了一个易用的可视化的界面。 则提供一个托管的版本。
这远不是一个完整的列表,当然,如果你是一个编程专家,你可以选择采取你自己的方式而不是使用这种框架中的一个。或者你发觉一个用其他语言编撰的替代品。例如 Python 编程者可能更喜欢 Python 附带的Selenium,它可以在不使用实际浏览器的情况下进行爬取。如果你有喜欢的爬取和挖掘工具,请在下边评论使我们晓得。
(题图:You as a Machine. Modified by Rikki Endsley. CC BY-SA 2.0)
via: /resources/python/web-scraper-crawler