POST-запрос через urllib / urllib2? - PullRequest
2 голосов
/ 23 августа 2011

Прежде чем что-то сказать, я посмотрел вокруг, и решения не сработали.Мне нужно сделать запрос на вход в скрипт на Python.URL выглядит как http://example.com/index.php?act=login,, тогда он принимает username и password через POST.Может ли кто-нибудь помочь мне с этим?

Я пробовал:

import urllib, urllib2, cookielib

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
opener.addheaders.append( ('Referer', 'http://www.hellboundhackers.org/index.php') )

login_data = urllib.urlencode({'username' : '[redacted]',
                               'password' : '[redacted]'
                               })

resp = opener.open('http://[redacted].org/index.php?act=login', login_data)
print resp.read()
resp.close()

и немного изменил:

import urllib, urllib2, cookielib

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
opener.addheaders.append( ('Referer', 'http://www.hellboundhackers.org/index.php') )

login_data = urllib.urlencode({'act' : 'login',
                               'username' : '[redacted]',
                               'password' : '[redacted]'
                               })

resp = opener.open('http://[redacted].org/index.php', login_data)
print resp.read()
resp.close()

1 Ответ

1 голос
/ 23 августа 2011

Возможно, вам понадобится просмотреть исходный HTML-код, чтобы узнать, что такое URL-адрес действия формы входа. Иногда он совпадает с URL-адресом самой страницы, но, вероятно, отличается. Но поскольку вы не указали реальные URL-адреса, мы не можем вам помочь.

Элемент <form> может выглядеть примерно так:

<form method="POST" action="/do_login">

В этом случае вы должны использовать /do_login в своем POST-адресе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...