0

如何使用 Python 和 urllib2 获取受保护页面的内容?

我需要为要检索的页面指定用户名和密码。例如

content = urllib2.urlopen(URL, username, password).read()

我知道这不是 urllib2 API 的一部分。只需从 API 中举例说明我需要什么。

4

2 回答 2

2

我建议你看看python requests库。

它对开箱即用的基本 http 身份验证有很好的支持。

例如

import requests
content = requests.get(URL, auth=('user', 'pass'))

使用requests您还可以设置sessions(用于 cookie 管理)和轻松POST数据(例如登录表单)并保留 cookie 以浏览所有只有登录用户才能访问的页面。

在优秀的文档中阅读有关会话对象发布数据的更多信息。

如果您绝对必须使用urllib2这里是从另一个线程中获取的用于基本 HTTP 身份验证的有用片段:

import urllib2, base64

request = urllib2.Request("http://api.foursquare.com/v1/user")
base64string = base64.standard_b64encode('%s:%s' % (username, password))
request.add_header("Authorization", "Basic %s" % base64string)   
result = urllib2.urlopen(request)
于 2013-05-22T06:56:12.400 回答
0

您可以使用 urllib2 执行此操作,只需查看Urllib 文档

实际上,使用 selenium 之类的 Web 驱动程序输入表单要容易得多,但关于 selenium 的事情是它在 urllib 在后台时打开一个实际窗口,但 selenium 更容易使用

硒 API

这些只是我希望帮助的一些建议

于 2013-05-22T06:58:43.753 回答