如何使用 Python Mechanize 填写需要 Javascript 的网络表单?
How can I use Python Mechanize to fill out a web form that requires Javascript?
我正在尝试使用 mechanize 填写表格。但问题是网页需要javascript。因此,每当我尝试访问该页面时,该页面都会重定向到一个错误页面,上面写着 javascript needed。使用 mechanize 浏览器时有没有办法启用 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
您可以继续使用 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 支持的任何其他驱动程序,例如火狐.
来源:https://www.hongkiat.com/blog/automate-create-login-bot-python-selenium/
请记住,如果站点使用的是自签名证书,您可能需要进行调整。
我正在尝试使用 mechanize 填写表格。但问题是网页需要javascript。因此,每当我尝试访问该页面时,该页面都会重定向到一个错误页面,上面写着 javascript needed。使用 mechanize 浏览器时有没有办法启用 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
您可以继续使用 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 支持的任何其他驱动程序,例如火狐.
来源:https://www.hongkiat.com/blog/automate-create-login-bot-python-selenium/
请记住,如果站点使用的是自签名证书,您可能需要进行调整。