从Ruby到Python:Crawlers

在过去的几天里我开始学习python。 我想知道在python中编写爬虫的等效方法。

所以在ruby中我使用:

  1. nokogiri用于抓取HTML并通过css标签获取内容
  2. Net::HTTPNet::HTTP::Get.new(uri.request_uri).body用于从URL获取JSON数据

什么是python中的这些等价物?

主要是你必须将’scraper’/ crawler与将从web服务器下载文件/数据的python lib / program / function和将读取该数据并解释数据的Parser分开。 在我的情况下,我不得不废弃并获得一些“打开”但不下载/数据友好的政府信息。 对于这个项目,我使用了scrapy [1]。

主要是我设置’starter_urls’,这是我的机器人将抓取/获取的URL,并且在我使用函数’parser’来检索/解析此数据之后。

对于解析/检索,您将需要一些html,lxml提取器,因为90%的数据都是这样。

现在关注你的问题:

用于数据爬网

  1. Scrapy
  2. 请求[2]
  3. Urllib [3]

用于解析数据

  1. Scrapy / lxml或scrapy +其他
  2. LXML [4]
  3. 美味汤[5]

请记住’抓取’并且报废不仅仅适用于网络,电子邮件。 你可以在这里检查另一个问题[6]

[1] = http://scrapy.org/

[2] – http://docs.python-requests.org/en/latest/

[3] – http://docs.python.org/library/urllib.html

[4] – http://lxml.de/

[5] – http://www.crummy.com/software/BeautifulSoup/

[6] – Python读取我的Outlook电子邮箱并解析消息

Python中事实上的真实世界HTML解析器是美丽的汤 。 Python 请求库现在很流行用于HTTP(尽管标准库具有类似的function,但具有相当繁琐的API)。

垃圾和收割者项目是真实世界的爬虫,它们是为了爬行而定制的。

  1. 在lxml和美丽的汤之间,lxml更像是nokogiri,因为它基于libxml2并且它具有xpath / css支持。
  2. net / http的等价物是urllib2

我也使用Beautiful Soup ,它是如何解析HTML的简单方法。 当我抓取一些网页时,我也使用了ElementTree XML API 。 就个人而言,我非常喜欢ElementTree库(它易于解析XML)。