gpt4 book ai didi

python - 如何访问netgear路由器的网页界面

转载 作者:太空宇宙 更新时间:2023-11-04 03:52:47 26 4
gpt4 key购买 nike

我想做的是访问本地 netgear 路由器上的流量计数据。登录并单击链接非常简单,但理想情况下,我想要一个位于系统托盘 (windows) 中的小应用程序,我可以随时查看我的网络流量。

我正在使用 python 尝试访问路由器的网页,但遇到了一些问题。我最初尝试修改一个将重启路由器的脚本(在此处找到 https://github.com/ncw/router-rebooter/blob/master/router_rebooter.py )但它只是提供原始 html,并且在 onload javascript 函数运行后我需要它。这种类型的东西在很多关于网络抓取的帖子中都有描述,人们建议使用 selenium。

我尝试了 selenium,但遇到了两个问题。首先,它实际上打开了浏览器窗口,这不是我想要的。其次,它跳过了我为通过 HTTP 身份验证而输入的内容,并且无论如何都会弹出登录窗口。这是代码:

from selenium import webdriver

baseAddress = '192.168.1.1'
baseURL = 'http://%(user)s:%(pwd)s@%(host)s/traffic_meter.htm'

username = 'admin'
pwd = 'thisisnotmyrealpassword'

url = baseURL % {
'user': username,
'pwd': pwd,
'host': baseAddress
}

profile = webdriver.FirefoxProfile()
profile.set_preference('network.http.phishy-userpass-length', 255)
driver = webdriver.Firefox(firefox_profile=profile)
driver.get(url)

所以,我的问题是,在不启动可见的 Web 浏览器窗口的情况下完成我想要的事情的最佳方法是什么?

更新:好的,我尝试了 sircapsalot 的建议并将脚本修改为:

from selenium import webdriver
from contextlib import closing

url = 'http://admin:notmyrealpassword@192.168.1.1/start.htm'

with closing(webdriver.Remote(desired_capabilities = webdriver.DesiredCapabilities.HTMLUNIT)) as driver:
driver.get(url)
print(driver.page_source)

这修复了正在加载的网络浏览器,但它未能通过身份验证。有什么建议吗?

最佳答案

好的,我找到了解决方案,而且比我想象的要容易得多。我确实尝试了 John1024 的建议,并且能够使用 wget 从路由器下载正确的网页。但是,我不喜欢 wget 将结果保存到文件中,然后我必须打开并解析该文件。

我最终回到了我第一次尝试修改失败的原始 reboot_router.py 脚本。我的问题是我试图让它变得太复杂。这是我最终使用的最终脚本:

import urllib2

user = 'admin'
pwd = 'notmyrealpassword'
host = '192.168.1.1'
url = 'http://' + host + '/traffic_meter_2nd.htm'

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, host, user, pwd)
authhandler = urllib2.HTTPBasicAuthHandler(passman)

opener = urllib2.build_opener(authhandler)
response = opener.open(url)
stuff = response.read()
response.close()

print stuff

这将从我的路由器打印出整个流量计网页,并加载其正确的值。然后我可以拿走它并解析其中的值。这样做的好处是它没有外部依赖项,如 selenium、wget 或其他需要安装的库。干净就好。

谢谢大家的建议。没有他们,我不会得到这个答案。

关于python - 如何访问netgear路由器的网页界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com