使用Python将数据输入表单并从结果页面获取数据

时间:2015-02-05 21:41:25

标签: python web mechanize

我在32位Windows机器上使用Python 2.7。

我正在尝试将物种数据输入http://explorer.natureserve.org并检索结果,但我很难理解如何做到这一点。毋庸置疑,我对Python相对较新。

我有以下代码:

import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://explorer.natureserve.org")
assert "NatureServe" in driver.title
SciName = driver.find_element_by_name('searchSciOrCommonName')
SciName.send_keys("Arabis georgiana")
SciName.send_keys(Keys.RETURN) 
assert "No results found." not in driver.page_source

以上是有效的,但现在我需要在结果页面上选择元素Arabis georgiana,这会将我带到另一个页面。如何将结果页面重新导入Python并重定向到我真正想要的页面?

1 个答案:

答案 0 :(得分:1)

您需要以这种方式设置searchSciOrCommonName字段值:

br.form = list(br.forms())[0]
br.form['searchSciOrCommonName'] = 'butterfly'
response = br.submit()

然后,您可以通过例如BeautifulSoup

解析HTML响应
from bs4 import BeautifulSoup

soup = BeautifulSoup(response)

for item in soup.select('table[border="1"] > tr i')[1:]:
    print(item.text.strip())

会打印:

Aglais io
Callophrys mossii hidakupa
Callophrys mossii marinensis
Cercyonis pegala incana
...
Psora nipponica
Flowering Plants
Asclepias tuberosa