Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url 使用python获取网站的身份验证_Url_Python 2.7_Authentication - Fatal编程技术网

Url 使用python获取网站的身份验证

Url 使用python获取网站的身份验证,url,python-2.7,authentication,Url,Python 2.7,Authentication,我正在尝试使用python访问一个网站并下载信息。我知道代码的下载部分是有效的。 但是,该网站需要身份验证才能登录-我是会员,并且拥有有效的用户名和密码 我做了一些研究,下面的代码应该可以工作,但它不能。 我错过了什么? 代码如下: import urllib2 url = 'https://sample-website.com/' username = '' #I've tried with leaving this empty and with putting in a valid use

我正在尝试使用python访问一个网站并下载信息。我知道代码的下载部分是有效的。 但是,该网站需要身份验证才能登录-我是会员,并且拥有有效的用户名和密码

我做了一些研究,下面的代码应该可以工作,但它不能。 我错过了什么? 代码如下:

import urllib2

url = 'https://sample-website.com/'
username = '' #I've tried with leaving this empty and with putting in a valid username
password = '' # same as above
p = urllib2.HTTPPasswordMgrWithDefaultRealm()

p.add_password(None, url, username, password)

handler = urllib2.HTTPBasicAuthHandler(p)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)

page = urllib2.urlopen(url).read()
我得到的错误是:

Traceback (most recent call last):
  File "C:\Python27\smth_rand.py", line 14, in <module>
    page = urllib2.urlopen(url).read()
  File "C:\Python27\lib\urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 410, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 401: Unauthorized
理想情况下,我的代码会提示用户输入他/她的用户名和密码,但我也不知道如何对这部分进行编码


谢谢

所以您需要urllib和urllib2来完成这项工作。示例代码如下所示

    import urllib, urllib2
    import webbrowser

    opener = urllib2.build_opener()

    username = ''
    password = ''

    values = {
        'username': 'example_username',
        'password': 'example_password',
        }

    params = urllib.urlencode(values)

    response = opener.open("https://sample-website.com/",params)

    response.read()
您的response.read将为您提供您想要从中获得的信息。您可以查阅所有具体方法,以获得更深入的解释