Python:web登录脚本,什么';问题出在哪里?

Python:web登录脚本,什么';问题出在哪里?,python,browser,Python,Browser,这是脚本>> import ClientForm import urllib2 request = urllib2.Request("http://ritaj.birzeit.edu") response = urllib2.urlopen(request) forms = ClientForm.ParseResponse(response, backwards_compat=False) response.close() form = forms[0] print form sooform

这是脚本>>

import ClientForm
import urllib2
request = urllib2.Request("http://ritaj.birzeit.edu")

response = urllib2.urlopen(request)
forms = ClientForm.ParseResponse(response, backwards_compat=False)
response.close()

form = forms[0]
print form
sooform = str(raw_input("Form Name: "))
username = str(raw_input("Username: "))
password = str(raw_input("Password: "))

form[sooform] = [username, password]

request2 = form.click()
try:
    response2 = urllib2.urlopen(request2)
except urllib2.HTTPError, response2:
    pass

print response2.geturl()
print response2.info()  # headers
print response2.read()  # body
response2.close()
当启动脚本时,我得到了这个

Traceback (most recent call last):
  File "C:/Python26/ritaj2.py", line 9, in <module>
    form = forms[0]
IndexError: list index out of range
回溯(最近一次呼叫最后一次):
文件“C:/Python26/ritaj2.py”,第9行,在
表格=表格[0]
索引器:列表索引超出范围
问题是什么,我在windows上运行,python 2.6.4

更新:


我想要一个登录此站点并打印响应的脚本:)

实际地址似乎使用的是
https
而不是
http
。检查文档以查看它是否处理HTTPS(我相信您需要ssl)

实际地址似乎使用的是
HTTPS
而不是
http
。检查文档以查看它是否处理HTTPS(我相信您需要ssl)

该URL上提供的HTML中唯一的
标记(将其保存到文件中并自行查找!)是:

这使得
表单[0]
成为一个包含所有不在表单中的控件的人工表单

具体地说,这种方法按顺序用以下名称标识控件(这里再次出现了一些解析混乱,但希望不是您的杀手……):

因此,您应该能够设置“非表单”
f
用户名
密码
控件,然后从那里开始

(一个附加位:
raw\u input
已经返回了一个字符串,失去了围绕它的那些冗余的
str()
调用)。

在该URL上提供的HTML中唯一的
标记(将其保存到文件中并自己查找!)是:

这使得
表单[0]
成为一个包含所有不在表单中的控件的人工表单

具体地说,这种方法按顺序用以下名称标识控件(这里再次出现了一些解析混乱,但希望不是您的杀手……):

因此,您应该能够设置“非表单”
f
用户名
密码
控件,然后从那里开始


(附带一点:
raw\u input
已经返回了一个字符串,失去了围绕它的那些多余的
str()
调用)。

你自己调查这个问题多久了?我大约两天前试图编写这个脚本,但什么都没有得到,每次我得到一个代码,它都会显示一个错误,,所以,如果你能帮我制作这个网站的登录脚本,我将非常感激:)你自己调查这个问题多久了?我大约两天前试图制作这个脚本,但什么都没有得到,每次我得到一个代码,它都显示出一个错误,,,所以如果你能帮我制作这个网站的登录脚本,我将非常感激:)是的,它使用https,我是python编程新手,所以你能在这方面帮助我吗:)是的,它使用https,我是python编程新手,所以你能在这方面帮助我吗:)
<form method="GET" action="http://www.google.com/u/ritaj">
forms = ClientForms.ParseResponseEx(response)
>>> f = forms[0]
>>> [c.name for c in f.controls]
['q', 'sitesearch', 'sa', 'domains', 'form:mode', 'form:id', '__confirmed_p', '__refreshing_p', 'return_url', 'time', 'token_id', 'hash', 'username', 'password', 'persistent_p', 'formbutton:ok']