如果您查看以下链接的来源,您将看到两个表单,我希望选择名称为“doLoginPin”的表单。当我在下面执行时,找不到表单。这个表单是否是动态生成的,因此无法找到?有没有人遇到过这个并提出解决方案?
br.open('https://www.getipass.com/ipass/LoginPin.jsp')
for f in br.forms():
print f
最终我的目标是登录并抓取我的一些基本帐户数据。谢谢。
答案 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()