我想用GAE抓取网站并将结果发布到Google实体中

1 投票
2 回答
1585 浏览
提问于 2025-04-15 20:11

我想要抓取这个网址:https://www.xstreetsl.com/modules.php?searchSubmitImage_x=0&searchSubmitImage_y=0&SearchLocale=0&name=Marketplace&SearchKeyword=business&searchSubmitImage.x=0&searchSubmitImage.y=0&SearchLocale=0&SearchPriceMin=&SearchPriceMax=&SearchRatingMin=&SearchRatingMax=&sort=&dir=asc

我想进入每个链接,提取一些信息,比如权限、原始数据等等,然后把结果发布到谷歌应用引擎的一个实体里。

我想知道最好的方法是什么?

克里斯

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。你也可以用正则表达式来处理一些临时的任务。

撰写回答