Сложность с отправкой формы на python urllib2: на сайте написано, что у меня не включены куки, хотя я должен - PullRequest
1 голос
/ 15 июня 2011

Итак, я пытаюсь отправить форму с помощью urllib / urllib2, в которой должны быть установлены файлы cookie для входа в систему. Однако веб-сайт, похоже, убежден, что «файлы cookie не включены», хотя я сказал urllib для обработки файлов cookie.

Вот так выглядит мой код:

opener = urllib2.build_opener( urllib2.HTTPCookieProcessor() )
urllib2.install_opener( opener )
params = urllib.urlencode( { 'username': 'user', 'password': 'pass' } )

f = opener.open( 'http://example.com/login/',  params )
data = f.read()
print data # Returns a webpage which shows "You need to enable cookies!"
f.close()

Чего мне не хватает?Я знаю, что раньше использовал аналогичный рецепт для входа в систему.

Редактировать: При проверке заголовков, которые отправляются при заполнении формы самостоятельно, я думаю, что у меня может быть та же самая проблема, заданная (но неответил) здесь (форма отвечает перенаправлением 302).Hum.

1 Ответ

0 голосов
/ 15 июня 2011
import urllib2,urllib,cookielib

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener( opener )
params = urllib.urlencode( { 'username': 'user', 'password': 'pass' } )

f = opener.open( 'http://example.com/login/',  params )
data = f.read()
print data 
f.close()

попробуйте это.

...