试图在网站上选择 <textarea> 并提交? (使用 Python 机械化)

问题描述 投票:0回答:1

我正在尝试在 https://keywordsheeter.com/ (name="findersearchQueryInput") 上提交文本区域然后我希望能够将提交的文本区域的结果打印到我的控制台。

我尝试了 form.set_value、form.find_control 和 form["something"] = "something"。

我意识到这是行不通的,因为最初的 select_form() 没有找到名称 (findersearchQueryInput),这是 keywordsheeter.com 上文本区域的名称

我期待能够找到表格并从那里开始。

这是我目前的代码:

import mechanize

br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent',
                  'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open("https://keywordsheeter.com/")

print(br.title())

print(br.forms())

br.select_form("findersearchQueryInput")  # < not working...

br["keto diet "] = ["findersearchQueryInput"]

br.submit()

print(br.form)

提前致谢!

python textarea mechanize
1个回答
0
投票

你应该使用selenium因为

Mechanize
不支持
JavaScript

首先安装它

pip install selenium
然后按照说明获取适当的网络驱动程序https://sites.google.com/a/chromium.org/chromedriver/downloads

然后你可以这样修改你的代码:

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

webdriver_path = "path/to/chromedriver"

browser = webdriver.Chrome(executable_path=webdriver_path)
browser.get("https://keywordsheeter.com/")

# Find the textarea and enter your text
textarea = browser.find_element_by_name("findersearchQueryInput")
textarea.send_keys("keto diet")

# Submit the form by pressing Enter
textarea.send_keys(Keys.RETURN)

# Wait for the results to load
wait = WebDriverWait(browser, 10)
results = wait.until(EC.presence_of_element_located((By.CLASS_NAME, "result-list")))

# Print the results
print(results.text)

# Close the browser
browser.quit()
© www.soinside.com 2019 - 2024. All rights reserved.