Автоматическая загрузка веб-страницы Python с именем пользователя, паролем и файлами cookie - PullRequest
2 голосов
/ 13 декабря 2010

Я пытаюсь реализовать в Python простую программу, которая читает веб-страницы и записывает их в файлы. Приблизительно 2000 страниц сообщений пронумерованы, но некоторые цифры отсутствуют.

Веб-сайт защищен именем пользователя и паролем, и я использую то же имя пользователя и пароль, которые я обычно использую для доступа к нему вручную. Я использую некоторые примеры кода с обработкой файлов cookie, которые я нашел на официальном веб-сайте Python, но когда я их пробую, я пытаюсь скопировать ответы

"Ваш браузер не принимает наши файлы cookie. Для просмотра этой страницы, пожалуйста, установите настройки браузера для принятия файлов cookie. (Код 0)"

Очевидно, что проблема с файлами cookie, и, возможно, я неправильно обрабатываю имя пользователя и пароль. Любое предложение относительно следующего кода?

import urllib2
import cookielib
import string
import urllib
def cook():
    url="http://www.URL.com/message/"
    cj = cookielib.LWPCookieJar()
    authinfo = urllib2.HTTPBasicAuthHandler()
    realm = "http://www.URL.com"
    username = "ID"
    password = "PSWD"
    host = "http://www.URL.com/message/"
    authinfo.add_password(realm, host, username, password)
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj), authinfo)
    urllib2.install_opener(opener)

    # Create request object
    txheaders = { 'User-agent' : "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)" }
    try:
        req = urllib2.Request(url, None, txheaders)
        cj.add_cookie_header(req)
        f = urllib2.urlopen(req)

    except IOError, e:
        print "Failed to open", url
        if hasattr(e, 'code'):
            print "Error code:", e.code

    else:

        print f

cook
url="http://www.URL.com/message/"
urllib.urlretrieve(url + '1', 'filename')

1 Ответ

0 голосов
/ 13 декабря 2010

Взгляните на Bolacha , это обертка для httplib2, которая обрабатывает куки и другие вещи ...

...