gpt4 book ai didi

python - 如何使用 Python Mechanize 填写需要 Javascript 的 Web 表单?

转载 作者:行者123 更新时间:2023-12-04 16:18:36 25 4
gpt4 key购买 nike

我试图使用 Mechanize 填写表格。但问题是网页需要 javascript。因此,每当我尝试访问该页面时,该页面都会重定向到一个错误页面,指出需要 javascript。有没有办法在使用 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/

请记住,如果站点使用自签名证书,您可能需要进行调整。

关于python - 如何使用 Python Mechanize 填写需要 Javascript 的 Web 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50315664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com