Kir*_*ran 7 python selenium urllib2 beautifulsoup web-scraping
我在Python中使用Selenium webdriver进行网络抓取项目.
我想通过输入登录详细信息登录,然后单击"提交"按钮.
我可以输入用户名和密码.但我无法鼠标点击提交按钮.
"提交"按钮属于类型<input>.
<input type="image" src="/images/buttons/loginnow.gif" tabindex="3">
Run Code Online (Sandbox Code Playgroud)
这是我试图点击鼠标的python代码.
submitButton=driver.find_element_by_xpath("//input[@type='image'][@src='/images/buttons/loginnow.gif']")
driver.click(submitButton)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
AttributeError:'WebDriver'对象没有属性'click'
任何想法如何修复它或任何其他替代解决方案登录到Python网站.
谢谢
我好运使用mechanize.它非常简单易用.
这是我制作的脚本的简化版本:
from BeautifulSoup import BeautifulSoup
from tidylib import tidy_document
import mechanize
import cookielib
if __name__ == '__main__':
browser = mechanize.Browser()
cookiejar = cookielib.LWPCookieJar()
browser.set_cookiejar(cookiejar)
browser.set_handle_equiv(True)
browser.set_handle_redirect(True)
browser.set_handle_referer(True)
browser.set_handle_robots(False)
browser.open('https://www.example.com/')
browser.select_form(name = 'loginform')
browser['username'] = 'foo'
browser['password'] = 'bar'
browser.submit()
browser.open(browser.click_link(text = 'Link text'))
soup = BeautifulSoup(tidy_document(browser.response().read())[0])
Run Code Online (Sandbox Code Playgroud)
你真的不需要点击图像.您只需填写所有适当的表单详细信息即可submit().
此外,如果你不解析任何东西,只需摆脱BeautifulSoup和tidylib依赖.
您需要调用元素的单击函数,而不是驱动程序。
submitButton=driver.find_element_by_xpath("//input[@type='image'][@src='/images/buttons/loginnow.gif']")
submitButton.click()
Run Code Online (Sandbox Code Playgroud)