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

时间:2015-01-28 18:41:31

标签: python python-requests twill

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

MissingSchema: Invalid URL u'/index.php?r=site/login': No schema supplied. 
Perhaps you meant http:///index.php?r=site/login?

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

提前致谢

我的守则的要点:

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()

1 个答案:

答案 0 :(得分:5)

我一直在为我正在创建的网站遇到同样的问题,但我想我已经解决了。

使用twill的formaction()函数设置所需页面的操作。例如

    from twill.commands import *
    go('http://example.com/login')
    showforms() 
    fv("1", "nameField", "username")
    fv("1", "password", "password")
    formaction('form','http://example.com/login')
    submit("4")
    show()
    go('http://example.com/admin/')

或在你的情况下

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