前言:最近学习python爬虫,是个新手,看到教程就想跟着做,有个模拟知乎登录的小案例,按照教程来是不行的,账号密码登录卡死在那里,网站上搜了很多介绍都是18,19年的,解决不了,这里采用了一个巧妙的方法来暂时满足以下自己的要求,登录知乎爬取一些数据就好
简单粗暴
就是直接用qq登录的方式,前提是电脑先登录qq,而且现在也不需要手机确认登录,所以操作起来很简单,这里直接贴代码,全过程也是自动化的,只不过用了一个mouse库来移动鼠标和鼠标点击确认登录qq
from selenium import webdriver
from mouse import move,click
import time
post_url = 'https://www.zhihu.com/signin?next=%2F'
browser = webdriver.Chrome(executable_path="自己的chromedriver.exe")
browser.get(post_url)
time.sleep(5)
browser.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[3]/span[2]/button[2]').click()
time.sleep(3)
move(750,500)
click()
登录之后可以获取cookies并保存,在上面的代码之后添加下面代码即可(这里只打印以下),保存的话把注释去掉即可
post_cookies = browser.get_cookies()
cookies = {}
for post_cookie in post_cookies:
print(post_cookie['name']+"???????"+post_cookie['value'])
#演示保存
#cookies[post_cookie['name']] = post_cookie['value']
获得cookies之后设置以下headers可以直接用requests请求连接
resp = requests.get(url=url,headers=headers,cookies=cookies)