Проблемы с Python, механизация ботов - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь создать бота, чтобы легко сбросить настройки маршрутизатора, поэтому для этой задачи я использую механизацию.

import mechanize

br = mechanize.Browser()
br.set_handle_robots(False)
response = br.open("http://192.168.0.1/")

br.select_form(nr=0)
br.form['loginUsername']='support'
br.form['loginPassword']='71689637'
response=br.submit()

if(response.read().find("wifi")) != -1:
    # ????? 

Если он находит строку «wifi», это означает, что бот вошел в систему, но здесь я застрял, потому что кнопка перезагрузки находится на другой вкладке (Другая страница, я думаю, что изтот же объект, указывающий новый URL, должен иметь возможность следовать URL перенаправления без выхода из системы).Однако кнопка на этой вкладке - это кнопка, но не форма.

Изображение 1:

pic 1

Изображение 2:

pic 2

А вот источник:

https://github.com/SharkiPy/Code-stackoverflow/blob/master/Source

1 Ответ

0 голосов
/ 28 мая 2018

Вот начало кода с использованием Selenium, со скрытым браузером.Вам просто нужно добавить действия, которые вы выполняете при просмотре через роутер.Я надеюсь, что это поможет вам начать!

import time
from selenium import webdriver
from selenium.common.exceptions import WebDriverException, NoSuchElementException,InvalidElementStateException,ElementNotInteractableException, StaleElementReferenceException, ElementNotVisibleException
from selenium.webdriver.common.keys import Keys
# There may be some unnecessary import above

from selenium.webdriver.chrome.options import Options

options_chrome = webdriver.ChromeOptions()
options_chrome.binary_location = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe' # PATH to your chrome driver (you can also use firefox or any other browser, but options below will not be exactly the same
prefs = {"profile.default_content_setting_values.notifications" : 2} # disable notification by default
options_chrome.add_experimental_option("prefs",prefs)

#### below are options for headless chrome
#options_chrome.add_argument('headless')
#options_chrome.add_argument("disable-gpu")
#options_chrome.add_argument("--start-maximized")
#options_chrome.add_argument("--no-sandbox")
#options_chrome.add_argument("--disable-setuid-sandbox")
#### You should uncomment these lines when your code will be working

# starting browser : 
browser = webdriver.Chrome( options=options_chrome)

# go to the router page :
browser.get("http://192.168.0.1/")

# connect 
elem = browser.find_element_by_id("loginUsername")
elem.send_keys('support')
elem = browser.find_element_by_id("loginPassword")
elem.send_keys('71689637')
elem.send_keys(Keys.RETURN)

# here you need to find your button and click it
button = browser.find_element_by_[Whatever works for you]
button.click()
...