因爲好多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