отправка данных urllib2 - PullRequest
       12

отправка данных urllib2

2 голосов
/ 26 ноября 2008

Я недавно написал это с помощью SO. А теперь, может, кто-нибудь подскажет, как заставить его войти в систему? Он отображает все только в незарегистрированном формате.

import urllib2, re
import urllib, re
logindata = urllib.urlencode({'username': 'x', 'password': 'y'})
page = urllib2.urlopen("http://www.woarl.com/board/index.php", logindata)
pagesource = page.read()
print pagesource

Ответы [ 4 ]

4 голосов
/ 26 ноября 2008

Кто-то недавно задал тот же вопрос, который вы задаете . Если вы прочитаете ответы на этот вопрос, вы увидите примеры кода, показывающие, как оставаться в системе при просмотре сайта в скрипте Python, используя только материалы из стандартной библиотеки.

Принятый ответ может быть не таким полезным для вас, как этот другой ответ , поскольку принятый ответ имеет дело с конкретной проблемой, связанной с перенаправлением. Тем не менее, я рекомендую прочитать все ответы независимо от того.

3 голосов
/ 26 ноября 2008

Возможно, вы захотите посмотреть, как сохранить куки с сервера.

Pycurl или Механизация сделает это намного проще для вас

1 голос
/ 26 ноября 2008

Если вы действительно посмотрите на страницу, вы увидите, что ссылка для входа приведет вас к http://www.woarl.com/board/ucp.php?mode=login

Эта страница имеет форму авторизации и снова отправляет http://www.woarl.com/board/ucp.php?mode=login с POST.

Затем вам нужно будет извлечь файлы cookie, которые, вероятно, установлены, и поместить их в CookieJar или аналогичный.

0 голосов
/ 27 ноября 2008

Скорее всего, вы захотите создать открывающее устройство с этими обработчиками и применить его к urllib2. С их применением ваши куки обрабатываются, и вы будете перенаправлены, если сервер решит, что он хочет, чтобы вы где-то еще.

# Create handlers
cookieHandler = urllib2.HTTPCookieProcessor() # Needed for cookie handling
redirectionHandler = urllib2.HTTPRedirectHandler() # needed for redirection (not needed for javascript redirect?)

# Create opener
opener = urllib2.build_opener(cookieHandler,redirectionHandler)

# Install the opener
urllib2.install_opener(opener)
...