2

我想192.168.1.1 /basic/home_dhcplist.htm 从路由器获取页面,但它在开始时要求输入用户名和密码。

我正在通过 urllib2 在 Python 中获取页面

import urllib2
response = urllib2.urlopen('http://192.168.1.1/basic/home_dhcplist.htm')
html = response.read()
str="Prasads"
value= html.find(str)
print value
if value!=-1 :
    print "found"
else:
print "not found"

response.close()
4

2 回答 2

2

我见过的每个家庭路由器都使用基本身份验证进行身份验证。这只是您与请求一起发送的另一个标头。每次您请求页面时,用户名和密码都会作为标头发送到服务器,并在每个请求中对其进行验证。

我建议requests图书馆结束urllib2

import requests

r = requests.get('http://192.168.1.1/basic/home_dhcplist.htm', auth=('username', 'password'))

if 'Prasads' in r.text():
    print "found"
else:
    print "not found"
于 2013-08-30T16:29:12.673 回答
0

基本上,您很可能需要设置维护会话的 cookie 。

通过浏览器 (Firefox) 访问页面,在提示时输入登录密码。

Ctrl-Shift-k,然后重新加载页面并单击任何最近的GET请求,您将看到一个显示GET请求详细信息的窗口。请注意Request Headers并相应地设置 cookie。

最有用的键值Authorization.

于 2013-08-29T18:51:18.337 回答