2

这两天我开始学习python。我想知道在python中编写爬虫的等效方法。

所以在红宝石中我使用:

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

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

4

4 回答 4

3
  1. 在lxml和美汤之间,lxml更相当于nokogiri,因为它基于libxml2,并且支持xpath/css。
  2. net/http 的等价物是 urllib2
于 2012-10-15T07:40:33.410 回答
3

主要是你必须将'scraper'/crawler 与将从网络服务器下载文件/数据的python lib/程序/函数和将读取此数据并解释数据的解析器分开。就我而言,我不得不废弃并获取一些“开放”但不适合下载/数据的政府信息。对于这个项目,我使用了 scrapy[1]。

主要是我设置了'starter_urls',它们是我的机器人将抓取/获取的url,并且在我使用函数'parser'来检索/解析这些数据之后。

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

现在专注于您的问题:

用于数据爬取

  1. 刮擦
  2. 请求 [2]
  3. 网址库 [3]

用于解析数据

  1. Scrapy/lxml 或 scrapy+other
  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邮箱并解析邮件

于 2012-10-15T07:41:32.520 回答
2

Python 中事实上的真实世界 HTML 解析器是美丽的汤。Python requests库如今对于 HTTP 很流行(尽管标准库具有类似的功能,但 API 相当繁琐)。

斗志昂扬和收割机项目是真实世界的爬虫,专门为爬行而定制。

于 2012-10-15T07:29:02.193 回答
1

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

于 2012-10-15T07:42:06.903 回答