2013-11-21 2 views
0

Я пытаюсь войти на сайт vBulletin 4.0 с помощью python. Это мой код:Вход в vBulletin 4.0 через python

import cookielib 
import urllib2 
cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
login_data = urllib.urlencode({'username' : 'user', 'j_password: 'password'}) 
opener.open('http://www.example.com/forum/login.php?do=login', login_data) 

Я не понимаю, как получить необходимые вещи обратно, чтобы узнать, вошел ли я или нет, хотя, как мне это делать?

Спасибо.

+0

Ошибки. Есть идеи? – llamadillo

+0

Я думаю, что сообщение об ошибке говорит все это ... Вы определенно уверены, что URL-адрес является правильной целью для действия форм? –

+0

Ну, я уверен. Это то, о чем я спрашиваю. : 3 – llamadillo

ответ

3

Я бы настоятельно предложил использовать модуль запросов python.

С его помощью вы можете забыть о нюансах и раздражениях урлиба.

Так что ваш код будет свести к чему-то вдоль линий: добавленной

import requests 

params = {'username' : 'user', 'j_password: 'password'} 

r = requests.get('http://www.example.com/forum/login.php?do=login', params=params) 

r.raise_for_status() 
+0

Я пробовал это, но, похоже, я не получаю ответа, если пароль неверен. Есть ли все-таки только для того, чтобы получить правильный или неправильный код? – llamadillo

+0

@LordArmadillo, если vBulletin использует стандартные коды, он должен вернуть либо 401, либо 403 для сбой auth, который был бы пойман методом 'raise_for_status()'. Можете ли вы посмотреть документы API vBulletin и посмотреть, какой код они вернут? – rdodev

+0

Ну, я спас несколько других предметов, и у меня это получилось. В основном, я пытаюсь получить доступ к странице с ограниченным доступом, а затем проверить, не запрашивает ли меня эта страница. Неэффективен, но он работает. – llamadillo

Смежные вопросы