在 Google App Engine 中将 Twill 和 Python 合并到一个代码中

35 阅读3分钟

如何将 Twill 和 Python 合并到一个代码中,以便在 Google App Engine 上运行? 目前,您已在计算机上安装了 Twill(之前已安装 Python 2.5),并一直在使用它。Python 安装在计算机的磁盘 C 上:C:\Python25,而 Twill 文件夹("twill-0.9")位于:E:\tmp\twill-0.9。

您一直在 Twill 中使用以下代码:

go “some website’s sign-in page URL”
formvalue 2 userid “my login”
formvalue 2 pass “my password”
submit
go “URL of some other page from that website”
save_html result.txt

这段代码可帮助您登录一个您拥有账号的网站,记录该网站另一个页面的 HTML 代码(您只能在登录后才能访问该页面),并将其存储在名为 “result.txt” 的文件中(当然,在使用此代码之前,您首先需要将 “my login” 替换为您的真实登录名,将 “my password” 替换为您的真实密码,将 “some website’s sign-in page URL” 和 “URL of some other page from that website” 替换为该网站的真实 URL,并将数字 2 替换为该网站登录页面中用作登录表单的表单的编号)。

您将此代码存储在 “twill-0.9” 文件夹中的 “test.twill” 文件中:E:\tmp\twill-0.9\test.twill。您从命令提示符处运行此文件:python twill-sh test.twill。

现在,您还从 "Google App Engine" 安装了 "Google App Engine SDK",并一直在使用它一段时间。例如,您一直在使用以下代码:

import hashlib
m = hashlib.md5()
m.update("Nobody inspects")
m.update(" the spammish repetition ")
print m.hexdigest()

这段代码可帮助您将短语 “Nobody inspects the spammish repetition” 转换为 md5 哈希值。

现在,您如何将这两段代码合并到一个可以在 Google App Engine 上运行的 Python 脚本中?

假设您希望您的代码从 Google App Engine 登录网站,转到该网站上的另一个页面,记录其 HTML 代码(这是您的 Twill 代码所做的),然后将此 HTML 代码转换为其 md5 哈希值(这是您的第二个代码所做的)。那么,如何将这两个代码合并到一个 Python 代码中呢?

我想,这应该通过某种方式导入 Twill 来完成,但具体如何操作?由 Google App Engine 运行的 Python 代码可以从互联网上的某个地方导入 Twill 吗?或者,Twill 可能已经安装在 Google App Engine 上了吗?

更新 1: (此更新是我的回答 Wooble 的回答) 以下是在我的 “twill-0.9” 文件夹中包含 init.py 文件的所有文件夹的列表。(此列表中的一些文件夹位于其他文件夹中,这些文件夹也在此列表中。)

E:\twill-0.9\build\lib\twill\extensions\match_parse
E:\twill-0.9\build\lib\twill\extensions
E:\twill-0.9\build\lib\twill\other_packages_mechanize_dist
E:\twill-0.9\build\lib\twill\other_packages
E:\twill-0.9\build\lib\twill
E:\twill-0.9\twill\extensions\match_parse
E:\twill-0.9\twill\extensions
E:\twill-0.9\twill\other_packages_mechanize_dist
E:\twill-0.9\twill\other_packages
E:\twill-0.9\twill

2、解决方案: 为了在 Google App Engine 中使用 Twill 和 Python,您需要将 Twill 文件夹(包含 init.py 文件的文件夹)复制到您的应用程序文件夹中,然后将其部署到 App Engine。

根据 Twill Google Code 项目的观察,Twill 在其软件包中包含了它的依赖项(pyparsing、mechanize 等),因此您可能无需包含其他任何内容。

如果您需要导入 Twill,则可以使用以下步骤:

  1. 将 Twill 文件夹(包含 init.py 文件的文件夹)复制到您的应用程序文件夹中。
  2. 在您的应用代码中导入 Twill。
from twill.commands import *
  1. 部署您的应用程序。

这样,您就可以在 Google App Engine 中使用 Twill 和 Python 了。