Scrapy里面用到了Parsley。
Parsley是一个挺有意思的小东西,它综合运用了CSS、XPath、正则表达式和JSON,是描述如何从网页里提取结构化数据的简单语言。估计做爬虫(Crawler/Spider)的人都会定义一套类似的模板。只不过Parsley还帮你把具体实现做了,用各种开发语言。
基本事实
Parselets就是用Parsley语言写成的片段(snippets)。
你可以近似认为一个Parselet定义了一套动作,描述如何从html代码中精确抽取数据,比如标题在哪儿,标题的链接怎么拿,评论数在哪儿如何提取。
Parsley有各种语言实现包,Ruby、Python、C/C++等。
pyparsley是对应的Python库。
Code和Result示例
具体例子参见:http://parselets.com/parselets/yc/15 ,
左侧的Code就是我们通常说的模板,右边的Result就是提取的结构化数据。
那么它是如何变为现实的呢?
实现
安装Parsley,再安装http://github.com/fizx/pyparsley,然后运行如下Python代码,就可以从给定网页链接,通过Parselet的描述,获得json格式的结构化数据。
zhengyun 20091127 beijing