gpt4 book ai didi

python - Selenium/Python - 提交表单后提取动态生成的 HTML

转载 作者:太空狗 更新时间:2023-10-30 01:04:45 29 4
gpt4 key购买 nike

我试图访问的网页使用 JavaScript 动态生成 HTML 表单(这个:https://imgur.com/a/rhmXB)。当键入 print(page_source) 时,表格似乎出现在正在输出的 HTML 中。

但是,在填写输入字段并提交表单后,会出现另一个带有验证码图像的输入字段(如下所示:https://imgur.com/a/xVfBS)。输入 print(page_source) 后,带有验证码的输入表单似乎没有插入到 HTML 中。

我的问题是:如何使用 Selenium 访问这个动态生成的 HTML,其中包含输入字段和验证码图像?

这是我的代码(也是 in pastebin ):

from selenium import webdriver
driver = webdriver.Chrome("/var/chromedriver/chromedriver")

URL = 'http://nap.bg/link?id=104'
driver.get(URL)

input_field = driver.find_element_by_name('ipID')
input_field.send_keys('0000000000')
driver.find_element_by_id('idSubmit').click()
print(driver.page_source)

最佳答案

点击按钮后,页面需要一些时间来加载验证码和其他内容。您需要等待它完成加载。您可以使用 Selenium 的 explicit waits 来做到这一点.

这是您可以执行的操作的示例:

from selenium import webdriver
<strong>from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By</strong>

driver = webdriver.Chrome()
URL = 'http://nap.bg/link?id=104'
driver.get(URL)

input_field = driver.find_element_by_name('ipID')
input_field.send_keys('0000000000')
driver.find_element_by_id('idSubmit').click()

<strong>wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.NAME, 'ipResponse')))</strong>

print(driver.page_source)

关于python - Selenium/Python - 提交表单后提取动态生成的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49519052/

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