|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本人在使用selenium操作chrome登录知乎时,所有的节点都已准确定位,在填写好帐号和密码信息并模拟点击登录按钮后,出现'missing argument grant_type'异常.在网上查了一下以后据说降低chrome的版本就可以正常登陆。这里想问的是为什么会出现这个异常和除了降低chrome版本之外,是否有其他方法能改进这个异常。(不管有没有验证码的页面出现都会出现这个异常)
顺便贴下代码
from selenium import webdriver
import requests
from time import sleep
from bs4 import BeautifulSoup
browser = webdriver.Chrome()
url= 'https://www.zhihu.com/'
s = requests.Session()
s.headers.clear()#清除requests头部中的Python机器人信息,否则登录失败
browser.get(url)
browser.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[2]/span').click()#避免屏幕失去焦点
browser.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/div[1]/div[2]/div[1]/input').send_keys('账号')
browser.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/div[2]/div/div[1]/input').send_keys("密码")
browser.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/button').submit()#点击登陆使验证码出现
try:
img = browser.find_element_by_xpath('//* [@id="root"]/div/main/div/div/div/div[2]/div[1]/form/div[3]/div/div[2]/img')#验证码图片链接--倒立文字
sleep(2)
except:
img= browser.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/div[3]/div/span/div/img').get_attribute("src")#验证码图片链接--字母数字
sleep(2)#填写验证码
else:
pass
#browser.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/button').submit()#点击登陆使验证码出现
sleep(20)
browser.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/button').submit()#填写验证码之后再次点击登陆
sleep(5)#等待Cookies加载
cookies = browser.get_cookies()
browser.quit()
for cookie in cookies:
s.cookies.set(cookie['name'],cookie['value'])#为session设置cookies
html=s.get(url).text
soup = BeautifulSoup(html,"lxml")
items = soup.find_all('a',attrs={'data-za-detail-view-element_name':"Title"})#获取登录后加载出的前几个话题的标题
for item in items:
print(item.string)
|
-
|