Как войти на закрытый сайт - PullRequest
1 голос
/ 01 апреля 2019

Я провожу летние исследования в моей школе. Я должен загрузить ~ 2000 изображений с закрытого сайта с графиками. Я мог бы сделать это вручную, но я знаю, что с каким-то сценарием это сделать будет гораздо быстрее. Я остановился на Python, потому что я предполагаю, что это будет намного проще, чем на другом языке. У меня есть URL для сайта и общая ссылка для базы данных, где хранятся изображения. Я планирую кормить программу списком номеров орбит, и она будет загружать соответствующие изображения. Основная проблема заключается в том, что когда вы посещаете сайт, он открывает окно входа в систему через браузер, а не HTML. Я не могу просмотреть любой код сайта, чтобы увидеть, как отправить логин.

Я уже пытался использовать urllib и cookielib. Я понимаю, что urllib2 не работает в Python 3. Я также изучал использование запросов и механизацию без удачи.

import cookielib
import urllib2
import string

def cook():
    url="SITE"
    cj = cookielib.LWPCookieJar()
    authinfo = urllib2.HTTPBasicAuthHandler()
    realm="realmName"
    username="USERNAME"
    password="PASS"
    host="HOST"
    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 as e:
        print("Failed to open", url)
        if hasattr(e, 'code'):
            print("Error code:", e.code)

    else:

        print (f)
        print (f.read())
        print (f.info())
        f.close()
        print('Cookies:')
        for index, cookie in enumerate(cj):
            print (index, " : ", cookie)      
        cj.save("cookies.lwp")

Код, очевидно, просто выбрасывает кучу ошибок. Мне просто нужно войти на сайт и загрузить мои изображения.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Полностью удалось это исправить, минуя проверку. Я знаю, что это не очень хороший метод, но он делает то, что мне нужно. Спасибо, ребята!

0 голосов
/ 01 апреля 2019

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

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