使用Python获取受保护网页的内容

时间:2013-05-22 06:49:08

标签: python authentication urllib2

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

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

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

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

2 个答案:

答案 0 :(得分:2)

我建议您查看python requests库。

它开箱即用basic http authentication

e.g。

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

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

在优秀文档中详细了解session objectsposting data

如果您绝对必须使用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)

答案 1 :(得分:0)

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

即可

使用像硒这样的网络驱动程序实际上更容易进入形式,但关于硒的事情是它打开一个实际的窗口,而urllib在后台但是硒更容易使用

Selenium API

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