路由器访问-靓汤-Python 3.5

路由器访问-靓汤-Python 3.5,python,Python,我有一个路由器,我想使用Python脚本登录并检索信息。我是Python的新手,但想用它学习和探索更多。以下是我到目前为止所写的内容: from requests.auth import HTTPBasicAuth import requests from bs4 import BeautifulSoup response = requests.get('http://192.168.1.1/Settings.html/', auth=HTTPBasicAuth('Username', 'Pa

我有一个路由器,我想使用Python脚本登录并检索信息。我是Python的新手,但想用它学习和探索更多。以下是我到目前为止所写的内容:

from requests.auth import HTTPBasicAuth
import requests
from bs4 import BeautifulSoup

response = requests.get('http://192.168.1.1/Settings.html/', auth=HTTPBasicAuth('Username', 'Password'))
html = response.content

soup = BeautifulSoup(html, "html.parser")
print (soup.prettify())
我有两个问题:

当我第一次运行脚本时,我收到一个身份验证错误。第二次运行脚本时,它似乎可以很好地进行身份验证并检索HTML。有更好的方法吗

对于BS,我只想从脚本中检索我需要的代码。我看不到一个标签设置BS刮。在HTML的开头有一个变量列表,我想从中提取数据,例如:

var Device Pin    = '12345678';
使用单个脚本检索信息比每次登录到web界面要容易得多。它位于脚本type=“text/javascript”中

BS是该作业的正确工具。我能在变量列表中删去这一行吗


非常感谢您的帮助。

我会运行数据包嗅探器、tcpdump或wireshark,以查看脚本和路由器之间的交互。查看交互可能有助于确定第一次通过时无法进行身份验证的原因。作为一种解决方法,在for循环中运行auth部分,它将在失败之前尝试N次身份验证

关于刮削,你可能想用漂亮的汤解析器来考虑LXML,这样你就可以使用XPath了。看


如果lxml能够解析,XPath将允许您轻松地从html中提取单个值、文本、属性等。

我将运行数据包嗅探器、tcpdump或wireshark,以查看脚本和路由器之间的交互。查看交互可能有助于确定第一次通过时无法进行身份验证的原因。作为一种解决方法,在for循环中运行auth部分,它将在失败之前尝试N次身份验证

关于刮削,你可能想用漂亮的汤解析器来考虑LXML,这样你就可以使用XPath了。看


如果lxml能够解析XPath,则可以轻松地从html中提取单个值、文本、属性等。

据我所知,BeautifulSoup不处理javascript。在这种情况下,只需使用正则表达式就足够简单了

import re
m = re.search(r"var Device Pin\s+= '(\d+)'", html)
pin = m.group(1)

关于身份验证问题,您可以在
中包装您的调用,如果第一次调用不起作用,请尝试除此之外重新调用。

据我所知,BeautifulSoup不处理javascript。在这种情况下,只需使用正则表达式就足够简单了

import re
m = re.search(r"var Device Pin\s+= '(\d+)'", html)
pin = m.group(1)
关于身份验证问题,您可以在
try except
中包装您的呼叫,以便在第一次呼叫不起作用时重做呼叫