我正在尝试使用机械化来填充表单。但问题是网页需要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
答案 0 :(得分:0)
你可以继续使用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/
如果网站使用的是自签名证书,请注意您可能需要进行调整。