selenium獲取cookies
1.大前提:先手工操作瀏覽器,登錄我的博客,並記住密碼
(保證關掉瀏覽器后,下次打開瀏覽器訪問我的博客時候是登錄狀態)
2.selenium默認啟動瀏覽器是一個空的配置,默認不加載配置緩存文件,這里先得找到對應瀏覽器的配置文件地址,以火狐瀏覽器為例
3.使用driver.get_cookies()方法獲取瀏覽器的cookies
# coding:utf-8 import requests from selenium import webdriver from bs4 import BeautifulSoup import re import time # firefox瀏覽器配置文件地址 profile_directory = r'C:\Users\admin\AppData\Roaming\Mozilla\Firefox\Profiles\yn80ouvt.default' # 加載配置 profile = webdriver.FirefoxProfile(profile_directory) # 啟動瀏覽器配置 driver = webdriver.Firefox(profile) driver.get("https://home.cnblogs.com/u/yoyoketang/followers/") time.sleep(3) cookies = driver.get_cookies() # 獲取瀏覽器cookies print(cookies) driver.quit()
(注:要是這里腳本啟動瀏覽器后,打開的博客頁面是未登錄的,后面內容都不用看了,先檢查配置文件是不是寫錯了)
requests添加登錄的cookies
1.瀏覽器的cookies獲取到后,接下來用requests去建一個session,在session里添加登錄成功后的cookies
s = requests.session() # 新建session # 添加cookies到CookieJar c = requests.cookies.RequestsCookieJar() for i in cookies: c.set(i["name"], i['value']) s.cookies.update(c) # 更新session里cookies
計算粉絲數和分頁總數
1.由於我的粉絲的數據是分頁展示的,這里一次只能請求到45個,所以先獲取粉絲總數,然后計算出總的頁數
# 發請求 r1 = s.get("https://home.cnblogs.com/u/yoyoketang/relation/followers")
參考: https://www.cnblogs.com/yoyoketang/p/8610779.html