#python #forms #search #mechanize
#python #формы #Поиск #механизировать
Вопрос:
Мне нужно смоделировать процесс ввода имени элемента и нажатия кнопки поиска на http://ccclub.cmbchina.com/ccclubnew /.
если я проверяю непосредственно в HTML, форма поиска описывается именем «SearchKey»
<span class="searchinput">
<input type="text" name="searchKey" id="searchKey" maxlength="25">
</span>
ниже приведен сценарий:
import mechanize
import cookielib
# Browser
br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
# Browser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
# Want debugging messages?
br.set_debug_http(True)
br.set_debug_redirects(True)
br.set_debug_responses(True)
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("http://ccclub.cmbchina.com/ccclubnew/")
Я получаю
br.select_form('searchKey')
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "buildbdist.win32eggmechanize_mechanize.py", line 524, in select_form
raise FormNotFoundError("no form matching " description)
FormNotFoundError: no form matching name 'searchKey'
и br.forms() пуст.
мой вопрос: почему mechanize не может выбрать форму, которая существует в html? каково возможное решение для решения этой проблемы?
Спасибо
Ответ №1:
Сам по себе input
поисковый ключ with name не является формой. Форма поставляется с <form>
тегом, но, честно говоря, это поле поиска, похоже, не является частью формы; вам придется имитировать установку текста ввода и его нажатие.
Комментарии:
1. спасибо за ответ. можете ли вы указать, как задать текст ввода, если механизация не подходит для такой сцены, какой потенциальный инструмент для копания?
Ответ №2:
Как насчет использования lxml или BeatifulSoup?
Комментарии:
1. это. это также помогает, когда установлены оба
2. Я быстро проверил beautiful soup и не увидел никаких интерактивных функций. похоже, что основным использованием soup является синтаксический анализ страницы.