因为好多cookie是被后端修改过的,requests获取到的cookie并不全面,然后我就想到了selenium登录获取cookie,希望可以帮到你!
话不多说,上代码!
# coding: utf-8
import requests,re,json,pymysql,time
from selenium import webdriver
from lxml import etree
url_base = 'https://www.***.com/book/index.html'
#url_base 需要爬的网址
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36',
'Cookie':kuke()}
#headers 请求头
res_a = requests.get(url=url_page, headers=self.headers).content.decode('utf-8')
#res_a 响应体
def kuke(self):
driver = webdriver.Chrome(r'C:\Users\Administrator\Desktop\chromedriver\chromedriver.exe')
driver.get('https://www.****.com/login')#登录页面
time.sleep(1)
driver.find_element_by_id('user').send_keys('用户账号')
driver.find_element_by_id('pass').send_keys('用户密码')
driver.find_element_by_xpath('//*[@id="submit"]').click()
time.sleep(1)
cookie = driver.get_cookies()
cookiea = [item["name"] + "=" + item["value"] for item in cookie]
cookiestr = '; '.join(item for item in cookiea)
driver.close() #获取到登录cookie,就可以关闭窗口了
return cookiestr