问题标签 [twill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1489 浏览

python - 斜纹/机械化访问 html 内容

关于斜纹机械化的几个问题:

  1. Twill 作为网络自动化工具是否仍然适用?如果是,那么为什么目前没有维护?如果没有,Mechanize 是否进一步成熟以支持 Twill 风格的简单脚本?或者是否有另一个包已经加紧填补空白?

  2. 我能够非常快速地使用 Twill 在 python 中设置几个测试套件,但我对如何访问 Twill 在我的 python 程序中吐出的信息有点困惑。也就是说,我可以执行 showforms() 并查看整齐列出的表单值,我可以使用 fv 更新表单值并提交。但是我如何以 python var 的形式访问这些表单值之一?我该怎么说:someField1Value = fv("1","someField1")

0 投票
1 回答
8857 浏览

python - 如何开始使用斜纹布?

很抱歉我已经在“超级用户”上问过这个问题,但没有人在那里回答,所以我从“超级用户”中删除了它并决定在这里发布。希望这不是什么大罪,特别是考虑到我首先被建议在“StackOverflow”上使用斜纹布(而不是在“SuperUser”上)

我如何开始使用斜纹布?我刚刚下载了它,解压并点击了文件夹中的 setup .py 文件。黑色的窗口(终端)出现了片刻又消失了。

(我的计算机上确实安装了 Python 2.5 - 以及来自 Google App Engine 的 SDK)

在斜纹文件部分它说:


下载斜纹

twill 的最新版本是 twill 0.9,于 2007 年 12 月 27 日星期四发布;可在 http://darcs.idyll.org/~t/projects/twill-0.9.tar.gz下载。您还可以使用 Python 的 easy_install 来安装或升级 twill。

斜纹适用于 Python 2.3 或更高版本。

要开始使用 twill,请安装它,然后键入 twill-sh。在提示符下输入:

go http://www.slashdot.org/
show
showforms
showhistory


从这篇文章中我不清楚我应该输入什么(只有“twill-sh”或“twill-sh”以及该行下的所有单词)以及在哪里(我尝试在我的计算机的命令提示符窗口中输入它 -无济于事)

可以,任何人,请,在这里帮助我吗?

先感谢您。


更新1:

(本次更新是对S.Mark给出的答案的回应)

你好,S.马克!!!!我试着听从你的指示。这是发生的事情:

首先,我在我的 D 盘上创建了一个文件夹,并将其命名为“tmp”。然后我下载并解压 twill-0.9 到那个文件夹中。因此,现在我计算机上此文件的路径与您的示例中的路径相同:D:\tmp\twill-0.9 :( 来源:narod.ru替代文字

替代文字
(来源:narod.ru

然后,我尝试在我的电脑上打开命令提示符:( 来源:narod.ru替代文字

替代文字
(来源:narod.ru

替代文字
(来源:narod.ru

替代文字
(来源:narod.ru

替代文字
(来源:narod.ru

然后,按照您的指示的第 2 步,我尝试切换到 D 盘:

替代文字
(来源:narod.ru

但由于某种原因它不起作用:

替代文字
(来源:narod.ru

这条中文线说类似“此操作已被拒绝”。为什么会这样?好吧,无论如何我都尝试继续执行第 3 步,这就是我所拥有的:

替代文字
(来源:narod.ru

据我了解,这条中文行说“'C:\'既不是内部命令也不是外部命令,因此无法执行。“为什么会这样?我的电脑有问题吗?


更新 2:

(此更新是我对 S.Mark 给出的答案的第二次回应)

你好,S.马克!!!再次感谢您的回答。

是的,这一次,当我刚刚输入您在帖子中突出显示的那些部分时,它起作用了。所以,当我一开始只输入“d:”时,它起作用了!!!

但是,当我输入“python setup.py build”时,我得到了同样的错误信息(“'python'既不是内部命令也不是外部命令;它不能被执行。”):( 来源:narod.ru )替代文字

我试图重复这个命令,不小心漏掉了“python”这个词:(来源:narod.ru
替代文字

当我按下“Enter”键时,构建过程似乎启动了——至少我当时看到的非常类似于你的指令的第 4 步(“开始构建过程”):( 来源:narod.ru(来源:narod .ru(来源:narod.ru替代文字

替代文字

替代文字

但是现在我对是否继续进行第 5 步(“安装它”)有点犹豫,因为我不确定我所做的是否正确。

如果我在第 4 步中所做的没问题,我是否也应该在第 5 步中省略“python”这个词?

一个附带问题:您是如何在不截图的情况下将终端的内容放入您的帖子中的?是否有某种方法可以将终端的内容放入剪贴板?一直制作屏幕截图并在发布之前托管它们非常麻烦。


更新 3:

(此更新是我对 S.Mark 的第三次回应)

S.Mark,你好!!!

(希望你还没有厌倦我)

“……是的,你可以省略 python 并直接运行 setup.py,因为你的 python 安装在注册表中注册了 *.py……关于第 5 步,你可以运行 setup.py install”——我按照你的这些话,安装过程成功运行!谢谢你。

但是对于以下步骤(“然后从开始菜单打开 python 提示,并测试第 6 步和第 8 步”),在 Python 提示中并没有多大成功:( 来源:narod.ru替代文字

在通常的命令提示符(终端)中也没有成功:( 来源:narod.ru替代文字

(它再次用中文说python“既不是内部命令也不是外部命令,因此无法执行”)。你知道为什么它不起作用吗?

“……你的 python 安装在哪里?C:\Python25?” - 是的,这是正确的。

“……有一个设置(命令提示符属性 - 简单编辑模式)可以在命令提示符下选择文本,你能在 superuser.com 中问这个吗?” - 当然,我会在那里问这个问题。谢谢你告诉我。

0 投票
4 回答
8307 浏览

python - 如何使用已安装的 twill 登录网站?

我刚刚在“StackOverflow”的一位非常支持成员的帮助下成功在我的计算机上安装了TWILL(你可以在这里查看)并尝试在斜纹文档页面上运行一个简单的示例(你可以看到那个页面在这里)。这是那个例子:

替代文字
(来源:narod.ru

假设我在www.slash.org上的用户名是lynxye,我的密码是哺乳动物。当我尝试将该示例代码输入到 Python 提示符中时,我只能键入并输入代码的第一行,因为当我单击“Enter”开始新行时,我会立即收到一些错误消息:

替代文字
(来源:narod.ru

当我尝试将此代码输入终端时也会发生同样的情况:

替代文字
(来源:narod.ru

我想我在这里错过了一些基础知识。也许,我需要创建一个包含该代码的文件,然后以某种方式运行该文件,但我真的不知道我需要在哪里创建该文件以及使用什么扩展名。

任何人都可以帮我解决这个问题吗?

0 投票
4 回答
3045 浏览

python - 如何将所有斜纹命令放在 .py 文件中的一段代码中?

我刚刚开始探索TWILL

Twill 是一种用于 Web 浏览的令人惊叹的脚本语言,它可以满足我的所有需求!!!

到目前为止,我一直在使用 Python shell 中的斜纹布(准确地说是IDLE (Python GUI)),并且我在那里做事的方式是一个接一个地执行命令(我的意思是,我输入一个命令,运行它,然后输入下一条命令):(来源:narod.ru替代文字

替代文字
(来源:narod.ru

替代文字
(来源:narod.ru

替代文字
(来源:narod.ru

替代文字
(来源:narod.ru

替代文字
(来源:narod.ru

替代文字
(来源:narod.ru

但是我不知道如何将所有这些命令放在一个 .py 文件中,以便它们都将自动执行。

斜纹布似乎有这样的可能性。这个来自斜纹文档页面的例子(你可以在这里看到)向我们展示了一段由几个命令组成的代码:(来源:narod.ru替代文字

所以,我的问题是:如何将所有命令放在斜纹中?


更新1:

(此更新是我对 S.Mark 的回应)

你好,S.马克!!!对于迟到的回复,我深表歉意。首先,关于我的斜纹和 python 相关文件夹的位置的一些信息:

我的电脑上安装Python2.5的路径:C:\Python25

现在我电脑上的twill-0.9的路径:E:\tmp\twill-0.9

假设我希望自动执行以下命令:

此代码应查看 yahoo 页面,然后将其 HTML 代码保存到 result.html 文件中。因此,尝试按照您的指示,我首先创建了包含此代码的“test.txt”文件,该文件仅包含 2 行,并将该文件保存为 twill-0.9 文件夹中的“test.twill”,这意味着该文件的完整路径文件现在是 E:\tmp\twill-0.9\test.twill

然后我尝试以许多不同的方式将文件名作为参数传递给 twill-sh 命令,但它从未起作用(我一定是做错了什么):( 来源:narod.ru替代文字

替代文字
(来源:narod.ru

但是你知道吗,我决定尝试一下,并创建了一个 test.py 文件,其中也只包含这两个命令。这个文件我也放在 twill-0.9 文件夹 (E:\tmp\twill-0.9\test.py) 中,然后我决定尝试使用 twill 的 runfile 命令从 twill shell 运行它,令人惊讶的是,它成功了!:( 来源:narod.ru替代文字

运行后,我查看了我的 C:\Python25 文件夹,并在那里找到了新创建的 result.html 文件!

好吧,我在这里所做的只是使用 twill 命令从 twill shell 运行一个文件。虽然目前这正是我所需要的,但其他支持者(如下所示)建议我应该从 python shell 做所有事情,而不是从 twill shell,这是我仍然不知道该怎么做的事情。

我下一步将尝试在“Google App Engine”上运行类似的代码,但据我所知,那里只识别 Python,而不识别斜纹,这意味着如果我只知道如何在斜纹中做事,但是不在 python 中,我将无法让“Google App Engine”执行我的命令。


更新 2:

(2010 年 4 月 23 日星期五凌晨 3:48:15 (GMT+0.00))

(此更新是我对 S.Mark 的第二次回应)

似乎从命令提示符运行它也不成功:( 来源:narod.ru替代文字

0 投票
4 回答
1461 浏览

python - 如何将 twill 和 python 组合成一个可以在“Google App Engine”上运行的代码?

我已经在我的电脑上安装了斜纹布(之前安装了 Python 2.5)并且最近一直在使用它。

Python安装在我电脑的C盘:C:\Python25

斜纹文件夹(“twill-0.9”)位于此处:E:\tmp\twill-0.9

这是我一直在斜纹布中使用的代码:

这段代码帮助我登录到一个我有帐户的网站,记录该网站其他页面的 HTML 代码(我只能在登录后访问),并将其存储在名为“result.txt”的文件中。 txt”(当然,在使用此代码之前,我首先需要将“我的登录名”替换为我的真实登录名,“我的密码”替换为我的真实密码,“某个网站的登录页面 URL”和“来自其他页面的 URL该网站”带有该网站的真实 URL,数字 2 是该网站上用作该网站登录页面上的登录表单的表单编号)

我将这段代码存储在“twill-0.9”文件夹中的“test.twill”文件中:E:\tmp\twill-0.9\test.twill 我从命令提示符运行这个文件:python twill-sh test。斜纹布

现在,我也从“Google App Engine”安装了“Google App Engine SDK”,并且已经使用了一段时间。

例如,我一直在使用这段代码:

这段代码帮助我将短语“没有人检查垃圾邮件重复”转换为 md5 摘要。

现在,我如何将这两段代码放在一个可以在“Google App Engine”上运行的 Python 脚本中?

比方说,我希望我的代码从“Google App Engine”登录到一个网站,转到该网站上的另一个页面,记录其 HTML 代码(这就是我的斜纹代码所做的),然后将此 HTML 代码转换为它的 md5 摘要(这就是我的第二个代码所做的)。那么,如何将这两个代码组合成一个 python 代码呢?

我想,它应该以某种方式通过进口斜纹布来完成,但是怎么做呢?python 代码——由“Google App Engine”运行的代码——可以从互联网上的某个地方导入斜纹布吗?或者,也许斜纹已经安装在“Google App Engine”上?


更新1:

(此更新是我对 Wooble 的回答的回应)

这是包含__init__.py 文件的所有文件夹的列表(在我的“twill-0.9”文件夹中)。(此列表中的某些文件夹位于此列表中也提到的其他文件夹中):

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:\斜纹-0.9\斜纹

0 投票
2 回答
1084 浏览

python - 环境变量

我使用该模块mechanize来登录站点。当我import twill.commands没有任何其他明显用途时,会显示一些调试消息 [0] [1]。当我删除它时,这些消息就会消失。

我怎样才能看到环境中发生了什么变化,以便模拟它并消除这种依赖关系?

[0] 使用日志记录模块。[1] 更具体地说,我对一条Following HTTP-EQUIV=REFRESH消息感兴趣。

更新:原来在 twill.commands 中存在一个错误,在尝试跟踪HTTP-EQUIV=REFRESH标题时会产生错误。删除import twill.commands和丑陋的工作后,一切顺利。

0 投票
2 回答
1091 浏览

python - 返回作为列表来自