首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python自动登录到我的本地互联网页面

使用Python自动登录到我的本地互联网页面
EN

Stack Overflow用户
提问于 2017-04-03 03:19:17
回答 2查看 1K关注 0票数 0

我有有线互联网,这需要我通过一个网页登录。它每天早上8点和12点重置是多么烦人我想写一个python脚本,它将自动登录过程。到目前为止,我已经阅读了许多StackOverflow解决方案,没有一个是有效的。我试过RequestsTwillRoboBrowser等。

在检查页面源代码时,我发现了一个doLogin() ajax脚本,该脚本由登录按钮触发。这是完整的page source

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

代码语言:javascript
复制
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解决了这个问题。检查答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-03 17:55:07

使用Selenium :)下载ChromeDriver到path,设置两个时间变量,每分钟检查一次时间。如果是“登录时间”,您的浏览器将通过授权。

代码语言:javascript
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2017-04-03 03:38:32

您的URL可能有误。看一下源代码,看起来像是HTML表单将数据发送到http://10.10.0.1/login页面,然后doLogin()函数将数据提交给Register.aspx?CheckCustomerStatus=1

此外,您的有效负载包括变量action,并且您使用的是Session对象,我认为这是没有必要的。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43172514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档