Список возвратов Ghost.py

Я только что установил Ghost.py, чтобы очистить сайт, требующий наличия javascript. Есть ли в любом случае, чтобы получить итерируемый список форм на текущей странице, так же как и модуль механизации с mechanize.Browser().forms()? Или если я не могу передать страницу (после загрузки всего файла javascript) в библиотеку механизатора и позволить ей заполнять/отправлять формы?

1 ответ

Selenium может сделать это для вас, если вы не возражаете, чтобы браузер отображался на вашем экране. Он тоже может работать без головы, но это сложнее. Простое решение:

from selenium import webdriver
driver = webdriver.Firefox()
url = "http://www.w3schools.com/html/html_forms.asp"
driver.get(url)
# get a list of the page forms as Selenium WebElements
# (webdriver API ref: http://selenium-python.readthedocs.org/en/latest/api.html)
forms = driver.find_elements_by_xpath(".//form")
for i, form in enumerate(forms):
 print i, form.text
# the last form, index number 5, has input tags of type "text" and "submit" 
"""
<form name="input0" target="_blank" action="html_form_action.asp" method="get">
"
Username: "


</form>
"""
# get the input WebElements from this form WebElement
inputs = forms[5].find_elements_by_xpath(".//input")
# write text to the text input, then submit the form
inputs[0].send_keys('hihi frds!')
inputs[1].submit()

licensed under cc by-sa 3.0 with attribution.