设置能够在 Google App 引擎上运行的 Python 爬虫

3 投票
4 回答
2582 浏览
提问于 2025-04-15 20:11

我想设置一个自动化的网页抓取工具,这个工具会在谷歌的应用引擎上运行,使用的是Python语言。我希望它能抓取网站上的信息,并把指定的结果放到应用引擎中的一个实体里。我想知道应该用什么工具。虽然我听说过BeautifulSoup这个库,但我想知道还有没有其他推荐的工具可以在谷歌应用引擎上使用。

4 个回答

0

另一个选择是 lxml,但是它是用C语言写的,所以在GAE上无法使用。

1

我用 mechanize 和 BeautifulSoup 这两个工具得到了不错的结果,虽然速度有点慢。其实,为了节省在 Google App Engine 上的代码空间,我使用的是 mechanize 里包含的(旧版)BeautifulSoup。

我把 mechanize 放在一个压缩文件里,叫做 mechanize.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
4

BeautifulSoup 在 App Engine 上运行得很好(只要确保使用 3.0.8 版本,而不是有点问题的 3.1.0 版本)。我认为主要的替代品是 html5lib —— 我还没有在 App Engine 上试过它,但我相信它可以运行(不过速度比较慢——如果这对你来说是个问题,那就还是用 BeautifulSoup 吧),比如说 这个服务 就是在 App Engine 上运行的,并且是基于 html5lib 的。

撰写回答