0
我閱讀本頁面和代碼不仍能正常工作: Logging in to vBulletin連接vBulletin 4.2.2論壇與Python
我的代碼:
#-*- coding:utf-8 -*-
import urllib, urllib2, cookielib, hashlib, time
def variables():
domain = "www.example.com"
uname = "UserName"
passwd = "Password"
# Create url
if domain.startswith('http://'):
url = domain
else:
url = 'http://' + domain
login(url, uname, passwd)
def login(url, uname, passwd):
loginurl = url + '/login.php?do=login'
md5 = hashlib.md5(passwd);md5 = md5.hexdigest()
# Options for request
opts = {
'do': 'login',
'vb_login_md5password': md5,
'vb_login_md5password_utf': md5,
's': '',
'vb_login_username': uname,
'security_token': 'guest',
}
data = urllib.urlencode(opts)
# Request header
global headers
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'es-es,es;q=0.8,en-us;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip,deflate',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'Connection': 'keep-alive',
'Referer': loginurl,
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Lenght': '205'
}
# Cookie Handling
jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
# Send Request
opener.addheader = headers
opener.open(loginurl, data)
# Check
response = opener.open('http://example.com/')
source_code = response.read()
if source_code.find(uname) != -1:
print "Login Succeeded."
else:
print "Login Failed."
variables()
字段名的屬性值是無(空):
<input type="hidden" name="s" value="" />
爲什麼代碼不起作用?
謝謝。
我應該把什麼vb_login_password_hint和cookieuser? 如果你可以給我例子的代碼,這將是非常有益的。 – Jonathan
安裝Live HTTP Headers(只有firefox會工作)並打開它然後開始登錄,你會看到所有的POST請求。 – SethSandaru
我在firefox中安裝了Live HTTP Header,並在開始登錄之前將其打開,並且我看到了所有POST請求,之後我相應地填寫了所有輸入表單,並且我試圖再次登錄而沒有成功。哪裏不對? – Jonathan