从Ruby到Python:Crawlers
在过去的几天里我开始学习python。 我想知道在python中编写爬虫的等效方法。
所以在ruby中我使用:
-
nokogiri
用于抓取HTML并通过css标签获取内容 -
Net::HTTP
和Net::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%的数据都是这样。
现在关注你的问题:
用于数据爬网
- Scrapy
- 请求[2]
- Urllib [3]
用于解析数据
- Scrapy / lxml或scrapy +其他
- LXML [4]
- 美味汤[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)。
垃圾和收割者项目是真实世界的爬虫,它们是为了爬行而定制的。
- 在lxml和美丽的汤之间,lxml更像是nokogiri,因为它基于libxml2并且它具有xpath / css支持。
- net / http的等价物是urllib2
我也使用Beautiful Soup ,它是如何解析HTML的简单方法。 当我抓取一些网页时,我也使用了ElementTree XML API 。 就个人而言,我非常喜欢ElementTree库(它易于解析XML)。
- BlazeDS Livecycle Data Services做了什么,像PyAMF或RubyAMF那样做了什么?
- 使用Perl,Python或Ruby,如何编写程序以在预定时间“点击”屏幕?
- 如何编写Perl,Python或Ruby程序来改变Windows上另一个进程的内存?
- Django Compressor错误编译SASS( – scss无效选项)
- 开源Twitter克隆(在Ruby / Python中)
- 在python中将反斜杠转换为正斜杠
- 如何使用Ruby或Python创建一系列高音和低音哔声?
- PyObjc vs RubyCocoa for Mac开发:哪个更成熟?
- Python / Django / Ruby / Rails / PHP中的LMS