标签: twill

如何修复ImportError:没有名为packages.urllib3的模块?

我在Ubuntu机器上运行Python 2.7.6.当我twill-sh在终端中运行(Twill是用于测试网站的浏览器)时,我得到以下内容:

Traceback (most recent call last):
  File "dep.py", line 2, in <module>
    import twill.commands
  File "/usr/local/lib/python2.7/dist-packages/twill/__init__.py", line 52, in <module>
    from shell import TwillCommandLoop
  File "/usr/local/lib/python2.7/dist-packages/twill/shell.py", line 9, in <module>
    from twill import commands, parse, __version__
  File "/usr/local/lib/python2.7/dist-packages/twill/commands.py", line 75, in <module>
    browser = TwillBrowser()
  File "/usr/local/lib/python2.7/dist-packages/twill/browser.py", line 31, in __init__
    from requests.packages.urllib3 import connectionpool as cpl
ImportError: No module named packages.urllib3
Run Code Online (Sandbox Code Playgroud)

但是,我可以在Python控制台中导入urllib就好了.可能是什么原因?

python urllib2 twill urllib3

14
推荐指数
4
解决办法
5万
查看次数

Python:单击带有urllib或urllib2的按钮

我想点击一个带有python的按钮,表格的信息会自动填入网页.用于向按钮发送请求的HTML代码是:

INPUT type="submit" value="Place a Bid">
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?是否可以单击urllib或urllib2按钮?或者我需要使用机械或斜纹等东西吗?

python mechanize urllib urllib2 twill

9
推荐指数
1
解决办法
4万
查看次数

有新的/更新的斜纹布吗?

我一直在尝试在Python上学习Twill Scripting,我使用的是Python 3.4和Twill 1.8.0.在这里阅读了一些帖子,我觉得学习很有意思.但是,我确实在安装Twill时遇到了问题.我只知道Python 中的PRINT现在是一个函数,这意味着它需要括号,这就是我的问题开始的地方.当我查看Twill 1.8.0上的代码时,我认为它还没有改变使用PRINT.字符串没有括号括起来,所以我想也许有一个新的补丁或版本的Twill适应Python的变化,有没有?或者除了手动编辑斜纹文件外,我还能做些什么吗?

非常感谢您的回复.

python printing scripting syntax-error twill

7
推荐指数
1
解决办法
3532
查看次数

如何使用已安装的斜纹布登录网站?

我已经在我的计算机上成功安装了TWILL,并得到了一个非常支持的"StackOverflow"成员的帮助(你可以在这里查看)并试图在twill文档页面上运行一个简单的例子(你可以看到那个页面)在这里).这是一个例子:

alt text http://roundcan.narod.ru/some_pics/19.jpg

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

alt text http://roundcan.narod.ru/some_pics/20.jpg

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

alt text http://roundcan.narod.ru/some_pics/21.jpg

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

有人可以帮我这个吗?

python logging twill

6
推荐指数
1
解决办法
6154
查看次数

Twill/Mechanize访问html内容

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

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

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

python twill mechanize-python

5
推荐指数
1
解决办法
1429
查看次数

发送带有机械化和请求的POST。

我正在尝试使用机械化发送POST,但是我的代码有时无法正常工作(我知道为什么)。我已经使用机械化,斜纹布和要求。机械化和斜纹化处理有效,而对请求不起作用。可能是我做错了。

我的机械化代码。以下作品:

#!/usr/bin/env python
import sys
import urllib
import mechanize
from mechanize import ParseResponse, urlopen, urljoin
response = urlopen(url)
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]
form["username"] = "avi"
form["password"] = "stackoverflow"
urlopen(form.click())
Run Code Online (Sandbox Code Playgroud)

我的斜纹代码。它也可以工作:

import os
import twill
from twill.commands import *
out = open(os.devnull,"w")
twill.set_output(out)
go(url)
formvalue("1", "username", "avi")
formvalue("1", "password", "stackoverflow")
submit()
go(url2) #some protected page
content = show()
print 'content is',content[:100]
Run Code Online (Sandbox Code Playgroud)

据我了解,机械化或斜纹首先获取页面,填写表格并发送表格。但是这里的问题是,有时目标页面显示随机页面,没有任何形式。在那种情况下,我会得到一个错误,显然是因为没有表格可以显示。我不想处理此错误,因为我已经知道帖子的网址。即使显示了一些随机页面,我单击下一步后,也会加载相同的表单。POST网址的所有字段均保持不变。所以我想直接发送POST请求,因为我已经知道了所需的所有细节。这是我的代码,基于

browser = mechanize.Browser()
parameters = {"username" : "avi",
          "password" : "stackoverflow",
         }  
data …
Run Code Online (Sandbox Code Playgroud)

python csrf twill python-requests mechanize-python

5
推荐指数
2
解决办法
1万
查看次数

我该如何开始使用斜纹布呢?

对不起,我已经在"超级用户"上提出了这个问题,但没有人在那里回答,所以我从"超级用户"中删除了它,并决定将其发布在这里.希望这不是一个大犯罪,特别是考虑到我第一次被建议在"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.

twill适用于Python 2.3或更高版本.

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

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


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

可以,有人,请帮帮我吗?

先感谢您.


更新1:

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

你好,S.Mark !!!! 我试图按照你的指示.这是发生了什么:

首先,我在D盘上创建了一个文件夹,并将其命名为"tmp".然后我下载并将twill-0.9提取到该文件夹​​中.所以,现在我的计算机上此文件的路径与您的示例中的路径相同:D:\ tmp\twill-0.9: alt text http://roundcan.narod.ru/some_pics/01_path_big.jpg

alt text http://roundcan.narod.ru/some_pics/02_path_small.jpg

然后,我尝试在我的计算机上打开命令提示符: alt text http://roundcan.narod.ru/some_pics/03_window.jpg

alt text http://roundcan.narod.ru/some_pics/04_prompt_big.jpg

alt text http://roundcan.narod.ru/some_pics/05_prompt_small.jpg

alt text http://roundcan.narod.ru/some_pics/06_admin.jpg

alt text http://roundcan.narod.ru/some_pics/07_admin_big.jpg

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

alt text http://roundcan.narod.ru/some_pics/08_switch_try.jpg

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

alt text http://roundcan.narod.ru/some_pics/09_switch_result.jpg

这条中文行说的是"这个行为被拒绝了."为什么会这样?好吧,无论如何我试着继续进行第3步,这就是我所拥有的:

alt text http://roundcan.narod.ru/some_pics/10_third_step.jpg

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


更新2:

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

你好,S.Mark !!! 再次感谢您的回答.

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

python installation twill

4
推荐指数
1
解决办法
8297
查看次数

当网站的提交按钮被本地化时使用Twill的提交功能(Python)

我试图从网站上提取信息,这样做需要我登录.一切顺利,直到我到达提交按钮:

MissingSchema: Invalid URL u'/index.php?r=site/login': No schema supplied. 
Perhaps you meant http:///index.php?r=site/login?
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这种情况正在发生,因为网站将自身重定向到服务器上的页面.有没有办法让按钮重定向到整页而不是服务器上的本地文件?或者我甚至纠正为什么会出现这个错误?

提前致谢

我的守则的要点:

from twill.commands import *
go('panel.picklehosting.com/index.php?r=site/login')
showforms()
formclear('1')
fv("1", "name", "usrname")
fv("1", "password", "mypass")
submit()
Run Code Online (Sandbox Code Playgroud)

python twill python-requests

2
推荐指数
1
解决办法
1690
查看次数