当前位置: 首页 > 知识库问答 >
问题:

使用Python自动登录到我的本地internet页面

任宾鸿
2023-03-14

我有有线互联网,它要求我通过一个网页登录。它每天早上8点和12点就会重置,这真让人恼火。我想写一个python脚本,它将自动登录过程。到目前为止,我读过很多StackOverflow解决方案,但没有一个有效的。我试过请求、斜纹、机器人浏览器等。

在检查页面源代码时,我遇到了一个doLogin()ajax脚本,它是由登录按钮触发的。这里是完整的页面来源。

下面是我的一个失败的实现

import requests

# Fill in your details here to be posted to the login form.
payload = {
    'action': 'http://10.10.0.1/login',
    'actualusername': 'username',
    'actualpassword': 'password'
}

# Use 'with' to ensure the session context is closed after use.
with requests.Session() as s:
    p = s.post("http://103.251.83.134/captiveportal/Default.aspx", data=payload)
    # print the html returned or something more intelligent to see if it's a successful login page.
    print p.text

    # An authorised request.
    #r = s.get('http://www.google.com')
    #print r.text

我用Selenium WebDriver修复了这个问题。检查答案。

共有2个答案

陶博涉
2023-03-14

您的URL可能是错误的。查看源代码,看起来HTML表单将数据发布到http://10.10.0.1/login页面,然后dologin()函数将数据提交到register.aspx?CheckCustomerStatus=1

另外,您的负载包括变量action,您使用的是session对象,我认为这是不必要的。

我无法测试它,因为它是一个我无法访问的本地登录页面,但我会尝试修改您的代码,使用一个更简单的POST请求将登录信息提交到两个页面

祝花蜂
2023-03-14

使用Selenium:)下载ChromeDriver到路径,使一个两次变量并检查每分钟的时间,如果是‘登录时间',你的浏览器将通过授权。

from selenium import webdriver

def Authorization_for_broadband():
    driver = webdriver.Chrome("C:\YOURPATHTO\CHROMEDRIVER.EXE")

    driver.get('http://10.10.0.1/login')
    driver.find_element_by_xpath('//*[@id="username"]').send_keys('USERNAME')
    driver.find_element_by_xpath('//*[@id="password"]').send_keys('PASSWORD')
    driver.find_element_by_xpath('//*[@id="btnLogin"]').click()
    driver.close

while(1):
    if time=='your-login-period1' or time == 'your-login-period2':
        Authorization_for_broadband()
 类似资料:
  • 本文向大家介绍selenium+python实现自动登录脚本,包括了selenium+python实现自动登录脚本的使用技巧和注意事项,需要的朋友参考一下 os:windows 前提:Python,selenium,IEDriverServer.exe,ie浏览器 首先安装Python2.7 安装成功后,计算机联网状态下在cmd命令行下输入:pip install -U selenium sele

  • 我想写个脚本登录https://us.etrade.com/e/t/user/login 我正在使用Selenium,但它会在启动时检测到Selenium,并生成一条消息,表示服务器拥挤,发生这种情况时,我无法登录。我也尝试过使用未检测到的硒和硒隐形,但都被检测到了。我真的需要自动化这个登录过程。我尝试过使用python请求,但这不起作用。我对任何其他技术或方法持开放态度,允许我实现自动化。请帮忙

  • 我是selenium的新手,这里我想问一个问题代码(实际上不是我的),这是代码 我用这些代码自动打开Gmail中不太安全的应用程序

  • 我一直在尝试使用python selenium自动登录google,但在输入用户名并单击next之后,我收到了消息 这可能是因为网页检测到chrome浏览器由测试自动化软件控制。但是我已经尝试使用以下设置代码排除该开关: 但它仍然不起作用。我用的是Chrome98。 我怎样才能解决这个问题?或者也许有另一种方法可以使用python-selenium和用户名/密码组合自动登录谷歌帐户?

  • 我有一个使用SpringMVC的Java网络应用程序。该 Web 应用程序在 jboss AS7.1 服务器上运行,该服务器使用带有表单认证的 JAAS 登录模块。当用户在表单上填写其用户名和密码时,登录工作顺利。 我现在想创建一个java控制器,它“将用户登录”,就好像用户填写了日志通知一样。 当上述方法完成时,应允许对任何安全页面的任何访问,因为用户被视为已登录。 可以通过访问Jboss的lo

  • 而且,再一次,即使键入正确的凭据,正如我在“userDetailsService”方法中指定的那样,我也无法登录,但这次我终于可以在控制台上看到错误消息: 显然我走了,但没有离开这个地方,因为现在我不知道我的代码有什么问题...