请指教一下,豆瓣的元素submit信息如图:
代码如下:
click、ENTER、RETURN、SPACE统统没用
from selenium import webdriver # 导入selenium
from selenium.webdriver.common.keys import Keys
def loginZhihu():
loginurl = 'https://accounts.douban.com/login' # 登录页面
# 加载webdriver驱动,用于获取登录页面标签属性
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get(loginurl) # 请求登录页面
driver.find_element_by_name('form_email').clear() # 获取用户名输入框,并先清空
driver.find_element_by_name('form_email').send_keys(u'5467878878') # 输入用户名
driver.find_element_by_name('form_password').clear() # 获取密码框,并清空
driver.find_element_by_name('form_password').send_keys(u'454354543543') # 输入密码
captcha = driver.find_element_by_id('captcha_image') # 获取验证码标签
submit = driver.find_element_by_css_selector('input[class="bn-submit"]') # 获取提交按钮
# 判断是否需要验证码
if captcha:
captcha_field = driver.find_element_by_id('captcha_field') # 获取验证码输入框
text = input("请输入验证码:") # 控制栏输入验证码
captcha_field.send_keys(text) # 将输入的验证码传递给selenium打开的浏览器
submit.send_keys(Keys.RETURN) # 按钮提交并登录
else:
submit.send_keys(Keys.RETURN) # 无验证码则直接登录提交
cookies = driver.get_cookies() # 获取验证码
driver.get('https://movie.douban.com/') # 请求其他页面
return cookies # 返回cookies 之后其他方法可以调用,这样不用每次请求都返回登录
loginZhihu()
根据你的截图,submit 按钮并没有被选中,应改成