找不到机械化的形式

时间:2014-02-14 15:54:59

标签: python python-2.7 web-scraping mechanize

如果您查看以下链接的来源,您将看到两个表单,我希望选择名称为“doLoginPin”的表单。当我在下面执行时,找不到表单。这个表单是否是动态生成的,因此无法找到?有没有人遇到过这个并提出解决方案?

br.open('https://www.getipass.com/ipass/LoginPin.jsp')

for f in br.forms():
    print f

最终我的目标是登录并抓取我的一些基本帐户数据。谢谢。

1 个答案:

答案 0 :(得分:2)

一种简单的方法是使用Selenium Webdriver。它允许您驱动真正的浏览器来发出请求。它有时可能有点重,但我觉得它对这些小任务很有用(我建议使用Firefox作为浏览器来驱动)。

您可以使用pip install selenium安装它。

此脚本将尝试使用用户名foo和密码bar登录。

from selenium import webdriver

if __name__ == '__main__':
    url = 'https://www.getipass.com/ipass/LoginPin.jsp'
    driver = webdriver.Firefox()
    driver.get(url)

    username = driver.find_element_by_name('txtLoginParam')
    password = driver.find_element_by_name('txtPass')
    username.send_keys('foo')
    password.send_keys('bar')
    password.submit()