Пытаетесь выбрать <textarea> на веб-сайте и отправить его? (Используя Python Mechanize)

Я пытаюсь отправить текстовое поле на 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 есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
170
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны использовать селен, потому что 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()

Привет, @Saxtheowl, я не понимаю, что такое подходящий веб-драйвер? Я тоже не знаю, как его установить, у меня много ошибок, когда я пытаюсь получить веб-драйвер и знаю, куда его поставить; Знаете ли вы какие-либо учебные пособия, посвященные этому, или у вас есть ответ для меня?

noah g 06.04.2023 19:43

здесь selenium.dev/documentation/webdriver/getting_started/…

Saxtheowl 06.04.2023 20:24

Другие вопросы по теме