我想用GAE抓取网站并将结果发布到Google实体中
我想进入每个链接,提取一些信息,比如权限、原始数据等等,然后把结果发布到谷歌应用引擎的一个实体里。
我想知道最好的方法是什么?
克里斯
2 个回答
3
在Python中,有几个很不错的网页抓取库可以使用。
其中,最简单的一个可能就是scrapy。它依赖于Twisted来实现主要功能,但提供了一个非常简单易用的界面,方便你编写自己的抓取代码。
如果你想手动实现抓取,可以考虑使用BeautifulSoup或者Mechanize,后者提供了一种“机械”的浏览器实现。
BeautifulSoup和Mechanize在App Engine上都可以直接使用,它们在httplib和urllib的基础上进行了封装,使用urlfetch作为后端。只有scrapy可能会有问题,因为它使用了Twisted。[感谢Nick Johnson提供的更新信息]。
3
在用纯Python库来处理HTML时,我发现html5lib比BeautifulSoup更好用。
不过,如果你只是想提取一些简单结构的信息,其实并不需要对HTML进行处理。我在Google App Engine上有几个抓取应用,使用的是我自己写的xpath库,它可以直接处理原始HTML。你也可以用正则表达式来处理一些临时的任务。