如何登录受限制的站点

问题描述 投票:1回答:2

我正和我的学校做一些夏季研究。我必须使用图表从受限制的站点下载约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")

显然,代码只会引发一堆错误。我真的只需要能够进入该网站并下载我的图像。

python python-3.x login
2个回答
0
投票

您应该使用selenium web驱动程序使登录自动化并下载图像。阅读此article它将帮助您从登录所需网站中删除数据


0
投票

完全能够通过绕过验证来修复它。我知道它不是一个很好的方法,但它做了我需要它。多谢你们!

© www.soinside.com 2019 - 2024. All rights reserved.