从python脚本输入html表单数据

时间:2015-10-14 07:41:41

标签: python html

我正在开展一个项目,我需要使用第三方网站验证一段数据。我使用lxml包编写了一个python脚本,该包成功检查特定数据是否有效。

不幸的是,该网站的数据没有方便的网址方案,因此我无法预测将包含每个唯一请求的数据的特定网址。相反,第三方网站有一个查询页面,其中包含一个标准的html文本输入,可以重定向到正确的URL。

我的问题是:有没有办法在html输入中输入一个值并从我的python脚本中提交所有内容?

1 个答案:

答案 0 :(得分:3)

是的。

Mechanize

Forms

列出表格

import mechanize

br = mechanize.Browser()
br.open(url)

for form in br.forms():
    print "Form name:", form.name
    print form

选择表格

br.select_form("form1")   
br.form = list(br.forms())[0]

登录表单示例

br.select_form("login")         
br['login:loginUsernameField'] = user
br['login:password'] = password
br.method = "POST"
response = br.submit()

Selenium

Sending input

给定一个元素定义为:

<input type="text" name="passwd" id="passwd-id" />

您可以使用以下任何一种方式找到它:

element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")

您可能想在文本字段中输入一些文字:

element.send_keys("some text")

您可以使用“Keys”类模拟按箭头键:

element.send_keys("and some", Keys.ARROW_DOWN)

这些是我所知道的可以做你所问的两个包。