Я провожу летние исследования в моей школе. Я должен загрузить ~ 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")
Код, очевидно, просто выбрасывает кучу ошибок. Мне просто нужно войти на сайт и загрузить мои изображения.