设置可以在Google App引擎上运行的python屏幕抓取工具

时间:2010-03-09 01:38:14

标签: python google-app-engine screen-scraping

我希望设置一个自动屏幕抓取工具,使用python在Google应用引擎上运行。我希望它抓取网站并将指定的结果放入应用程序引擎中的实体。我正在寻找有关使用方法的一些指示。我见过beautifulsoup但是想知道人们是否可以推荐其他可以在Google App引擎上运行的东西。

4 个答案:

答案 0 :(得分:4)

Beautifulsoup在App Engine上运行正常(只需确保使用3.0.8,而不是iffy 3.1.0)。我认为主要的替代方案是html5lib - 我没有在App Engine上尝试它但是我相信它确实在那里运行(非常慢 - 如果这是一个问题,我认为你需要坚持使用BeautifulSoup) ,例如this service在App Engine上运行,基于html5lib。

答案 1 :(得分:1)

我使用mechanize和BeautifulSoup获得了很好的(虽然很慢)结果。事实上,为了节省Google App Engine上的代码空间,我使用了机械化中包含的(旧版)BeautifulSoup。

我在zip文件mechanize.zip中进行机械化。该zip文件的索引如下所示:

mechanize/
mechanize/__init__.py
mechanize/_auth.py
mechanize/_beautifulsoup.py
mechanize/_clientcookie.py
... etc

然后在我的Python代码中

import sys
sys.path.insert(0, 'mechanize.zip')

import mechanize
from mechanize._beautifulsoup import BeautifulSoup

答案 2 :(得分:0)

另一个选择是lxml,但它使用C代码,因此不适用于GAE。

答案 3 :(得分:0)

我使用BeautifulSoup解析HTML非常成功。问题是,所有BeautifulSoup都是,解析HTML。我最后使用urlfetch编写了所有的http交互。

要抓取我的目标,我需要一个完整的代码驱动的浏览器,可以在我的目标网站的页面上执行javascript。我想我必须转储python应用程序并转到java所以我可以使用HTMLUnit - 正在进行原型设计。 - mattb