Загрузка файлов с другой стороны логина - PullRequest
1 голос
/ 04 августа 2011

Мне нужно использовать Python для загрузки большого количества URL-адресов, но им необходим пароль для доступа к ним (например, в системах, подобных cpanel).

Есть ли способ, которым я могу сделать это, сохраняя куки?

Я бы хотел использовать urllib2, если это возможно.

РЕДАКТИРОВАТЬ: Чтобы уточнить, это мой веб-сайт, и у меня есть данные для входа.

UPDATE: ОК, я использую это:

cj          = cookielib.CookieJar()
opener      = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data  =   urllib.urlencode({'login_name' : username, 'password' : password})
opener.open(loginURL, login_data)
productlist = opener.open(productURL)
print productlist.read()

Но он просто выплевывает страницу входа снова. Что не работает? (Переменные есть, я просто не показал вам, что они для безопасности)

1 Ответ

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

Вы должны использовать urllib2.HTTPCookieProcessor, например:

import urllib2
from cookielib import CookieJar

cookiejar = CookieJar()
opener = urllib2.build_opener()
cookieproc = urllib2.HTTPCookieProcessor(cookiejar)
opener.add_handler(cookieproc)

Тогда вы просто используете opener.open() для доступа к URL-адресам, и куки будут автоматически сохраняться и повторно использоваться в будущих запросах.

...