Как я могу использовать Python Mechanize для заполнения веб-формы, которая требует Javascript? - PullRequest
0 голосов
/ 13 мая 2018

Я пытался заполнить форму с помощью механизации.Но проблема в том, что веб-странице нужен JavaScript.Поэтому всякий раз, когда я пытаюсь получить доступ к странице, страница перенаправляет на страницу с ошибкой, говоря, что необходим JavaScript.Есть ли способ включить JavaScript при использовании механизированного браузера?

Вот код

import mechanize
import ssl

ssl._create_default_https_context = ssl._create_unverified_context
br = mechanize.Browser()
br.set_handle_robots(False)
br.open("https://192.168.10.3/connect/PortalMain")
for f in br.forms():
    print f

Также, когда я пытался извлечь веб-страницу с помощью BeautifulSoup, ' отлично работает на моембраузер 'У меня та же проблема.Перенаправляет на новую страницу.(Я попытался отключить JavaScript в своем браузере и получил страницу, на которой мне показывал красивый суп.)

Вот код BeautifulSoup, если он помогает

import ssl
import urllib2
from bs4 import BeautifulSoup

ssl._create_default_https_context = ssl._create_unverified_context
page = urllib2.urlopen("https://192.168.10.3/connect/PortalMain")
soup = BeautifulSoup(page,'html.parser')
print soup

1 Ответ

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

Вы могли бы просто пойти дальше и использовать вместо этого Selenium:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

usernameStr = 'putYourUsernameHere'
passwordStr = 'putYourPasswordHere'

browser = webdriver.Chrome()
browser.get('https://192.168.10.3/connect/PortalMain')

# fill in username and hit the next button (replace selectors!)
username = browser.find_element_by_id('Username')
username.send_keys(usernameStr)
password = browser.find_element_by_id('Password')
password.send_keys(passwordStr)
loginButton = browser.find_element_by_id('login')
loginButton.click()

Для открытия браузера и входа в систему будет использоваться веб-драйвер Chrome, вы можете переключить его на любой другой драйвер, поддерживаемый Selenium, например, Firefox.

Источник: https://www.hongkiat.com/blog/automate-create-login-bot-python-selenium/

Помните, что вам может потребоваться внести изменения, если сайт использует самозаверяющий сертификат.

...