0

我只是想问一下如何与一个给你 401 响应的页面建立连接 [user+pass]。

例如在 php 中它看起来像这样

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://192.168.1.1/');

curl_setopt($ch, CURLOPT_USERPWD, $user.':'.$pass);

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 4);

$result = curl_exec($ch);

$returnCode = (int)curl_getinfo($ch, CURLINFO_HTTP_CODE);
4

4 回答 4

1

如果您正在寻找简单的东西,那么该requests库将尽可能简单。这是来自文档的基本身份验证的简单示例:

>>> requests.get('https://api.github.com/user', auth=('user', 'pass'))
<Response [200]>
于 2012-11-05T20:21:43.117 回答
0

您可以使用 urllib2 模块 - http://docs.python.org/2/library/urllib2.html

于 2012-11-05T20:18:03.667 回答
0

这里有三个不错的选择。

首先,您可以使用urllib2(Python 2) 或urllib(Python 3),它们是内置的,并且非常易于使用。

其次,您可以使用更简单的第三方库,例如requests. (通常,需要十几行才能编写的代码,curl或者urllib是两行代码requests。)

最后,由于您已经知道如何使用 php 的低级 libcurl 包装器,因此有几个几乎相同的 Python 第三方替代方案。查看此搜索,并浏览pycurlpycurl2pyclibcurl,看看哪一个感觉最熟悉。

于 2012-11-05T20:23:41.353 回答
0

您正在寻找关键字Basic HTTP Authentication

如果您不打算这样做,我不建议您使用 3rd 方模块。如果您愿意,requests已经建议的库是一个不错的选择。

以下示例取自urllib2 文档

import urllib2
# create a password manager
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()

# Add the username and password.
# If we knew the realm, we could use it instead of None.
top_level_url = "http://example.com/foo/"
password_mgr.add_password(None, top_level_url, username, password)

handler = urllib2.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)
opener = urllib2.build_opener(handler)

# use the opener to fetch a URL
opener.open(a_url)

# Install the opener.
# Now all calls to urllib2.urlopen use our opener.
urllib2.install_opener(opener)
于 2012-11-05T20:30:48.197 回答