python - 数据收集 Urllib2+bs4 与 Scrapy

标签 python web-scraping beautifulsoup scrapy screen-scraping

数据收集是我日常工作的一部分,通常我收集数据的方式是使用 urllib2 收集 html 页面,然后使用 beautifulsoup 解析出我想要的数据。

我经常听说Python Scrapy 包。我看了一下 Scrapy,他们网站上的内容基本上是在谈论一般 Scraping 的重要性,而不是“Scrapy”本身。

我想知道对于一个对 urllib2 和 beautifulsoup 有一定了解的人来说,Scrapy 是否足够酷或简单到让我放弃 urllib2 和 bs4 去使用?如果是这样,转换的主要原因是什么?

或许可以从以下几个方面入手:

  1. 快速实现机器人

  2. 机器人的鲁棒性

  3. 易于维护您的机器人。

最佳答案

这是我的见解。

Scrapy旨在使网络抓取代码更简单、更有组织。它也非常快(它基于twisted)。

这些蜘蛛类、项目、项目管道确实可以帮助您组织获取页面、跟踪链接、解析响应、收集数据、将其存储在某处等的过程。它为您提供了如何创建网络的想法和模板-抓取项目。

它不仅仅是 urllib2 + bs4,它是一个框架:

Scrapy is an application framework for crawling web sites and extracting structured data which can be used for a wide range of useful applications, like data mining, information processing or historical archival.

还有比我提到的更多的功能,请参阅这篇内容非常丰富的 overview文档页面,特别是阅读 What else?部分。

选择(urllib2 + bs4Scrapy)实际上取决于任务、网络抓取代码的复杂性,以及您是否需要将爬取的数据存储在某处或不存储等。

希望有帮助。

关于python - 数据收集 Urllib2+bs4 与 Scrapy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18837759/

相关文章:

python - “平台”对象没有属性 'add_internal'

python - 如何构建具有多个文件和内部依赖项的项目并上传到 PyPI

python - Web Scraping w/BeautifulSoup4 - 如何过滤包含特定字符串的标签?

python - 从变量 Python (urllib2.urlopen) + Beautifulsoup4 打开链接

python - 如何在 ubuntu 10.10 上使用 python 将文本转换为语音?

python - 为特定的 IPython 配置文件选择 matplotlib 后端

python - 抓取亚马逊产品名称

python - 我需要学习什么 python 库来抓取这个网站?

node.js - 使用 request(),返回的页面还不包含需要的数据——而是返回不完整的页面。我如何 'wait' ?

python - 使用 chaquopy 将 BeautifulSoup 实现到 Android Studio