2013-08-29 8 views
2

Я хочу получить страницу 192.168.1.1 /basic/home_dhcplist.htm с маршрутизатора, но он спрашивает имя пользователя и пароль в начале.Как получить доступ к защищенной паролем странице маршрутизатора из Python?

Я выборка страницы в Python через urllib2

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() 
+0

Подробнее о маршрутизаторе –

ответ

1

Каждый домашний маршрутизатор, который я видел, использует для аутентификации базовую аутентификацию. Это просто другой заголовок, который вы отправляете вместе с запросом. Каждый раз, когда вы запрашиваете страницу, имя пользователя и пароль отправляются в виде заголовков на сервер, где они проверяются каждый запрос.

Я предлагаю библиотеку 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" 
+0

Я решил проблему с аутентификацией. Но могу ли я получить автоматический щелчок кнопки с помощью запросов? Как некоторые веб-сайты, я согласен. – skarfa

0

В основном вам нужно set the cookie, который поддерживает сеанс, скорее всего.

Доступ к странице через браузер (Firefox), введите пароль для входа, когда будет предложено сделать это.

Нажмите Ctrl-Shift-K и перезагрузите страницу и нажать на любую из последних GET запросов, вы получите окно, показывающее GET детали запроса. Обратите внимание на Request Headers и установите cookie соответственно.

Значение ключевое значение, которое было бы наиболее полезным, это Authorization.

Смежные вопросы