使用selenium如何實現自動登錄

??回顧使用requests如何實現自動登錄一文中,提到好多網站在我們登錄過后,在之后的某段時間內訪問該網頁時,不會給出請登錄的提示,時間到期后就會提示請登錄!這樣在使用爬蟲訪問網頁時還要登錄,打亂我們的節奏,并詳細介紹了使用requests爬取網頁時為實現自動登錄獲取鍵Cookie對應的值的過程。
??那么selenium如何實現自動登錄呢?又如何獲取鍵Cookie對應的值呢?

??開始之前我們先把項目創建好,如下:文件夾Day19下創建一個files文件夾用于存儲爬取到的Cookie對應的值

在這里插入圖片描述

一、selenium獲取鍵Cookie對應的值

01_selenium獲取cookie

from selenium.webdriver import Chrome# 1. 創建瀏覽器打開需要自動登錄的網頁
b = Chrome()
url = 'https://www.zhihu.com'
b.get(url)# 2. 留足夠長的時間給人工完成登錄
#(完成登錄的時候必須保證瀏覽器對象指向的窗口能夠看到登錄成功的效果)# 進入網頁后會有登錄提示,手動掃碼登錄成功后,回到pycharm的輸出區輸入任意
# 字符給input,方便我們知道執行到什么地方了
input('已經完成登錄:')# 3. 獲取瀏覽器cookie保存到本地文件
cookies = b.get_cookies()
with open('files/zhihu.txt', 'w', encoding='utf-8') as f:f.write(str(cookies))

完成登錄的時候必須保證瀏覽器對象指向的窗口能夠看到登錄成功的效果是針對如下情況:

在這里插入圖片描述

??因為第一步創建瀏覽器是打開網頁指向的是第一個標簽頁,要保證的是如果出現上述情況,我們希望是指向第二個頁面,爬蟲才能檢測到我們已經登錄成功了。可以在登錄成功頁面(第二個頁面)刷新一下即可

將獲取到的值存儲進csv文件中后,我們可以點擊files文件查看

在這里插入圖片描述

二、selenium實現自動登錄

02_selenium使用cookie

# 1. 從本地的cookie文件中獲取cookie
with open('files/zhihu.txt', encoding='utf-8') as f:cookies = eval(f.read())# 2. 添加cookie
for x in cookies:b.add_cookie(x)# 3.重新打開網頁
b.get('https://www.zhihu.com')# 為了不讓程序停止,給一個input指令
input()
到這里我們就實現了使用selenium完成自動登錄的操作了!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39620.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39620.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39620.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

item_get_sales-獲取商品銷量詳情

一、接口參數說明: item_get_sales-獲取商品銷量詳情,點擊更多API調試,請移步注冊API賬號點擊獲取測試key和secret 公共參數 請求地址: https://api-gw.onebound.cn/taobao/item_get_sales 名稱類型必須描述keyString是調用key&#xff08…

ACM模式刷Leetcode題目

139題單詞拆分 鏈接: link #include<iostream> #include<sstream> #include<string> #include<vector> #include<algorithm> #include<unordered_set> using namespace std;int main() {// 實現輸入第一行為s字符串。// 第二行為wordDic…

【代碼隨想錄day22】爬樓梯

題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢&#xff1f; 示例 1&#xff1a; 輸入&#xff1a;n 2 輸出&#xff1a;2 解釋&#xff1a;有兩種方法可以爬到樓頂。 1. 1 階 1 階 2. 2 階 示例 2…

Spring的三種異常處理方式

1.SpringMVC 異常的處理流程 異常分為編譯時異常和運行時異常&#xff0c;編譯時異常我們 try-cache 進行捕獲&#xff0c;捕獲后自行處理&#xff0c;而運行時異常是不 可預期的&#xff0c;就需要規范編碼來避免&#xff0c;在SpringMVC 中&#xff0c;不管是編譯異常還是運行…

java:JDBC

文章目錄 什么是JDBCJDBC使用步驟詳解各個對象DriverManagerConnectionStatementResultSetPreparedStatement JDBC控制事務操作步驟示例 什么是JDBC 我們知道&#xff0c;數據庫有很多種&#xff0c;比如 mysql&#xff0c;Oracle&#xff0c;DB2等等&#xff0c;如果每一種數…

C# WPF 中 外部圖標引入iconfont,無法正常顯示問題 【小白記錄】

wpf iconfont 外部圖標引入&#xff0c;無法正常顯示問題。 1. 檢查資源路徑和引入格式是否正確2. 檢查資源是否包含在程序集中 1. 檢查資源路徑和引入格式是否正確 正確的格式&#xff0c;注意字體文件 “xxxx.ttf” 應寫為 “#xxxx” <TextBlock Text"&#xe7ae;…

不重啟Docker能添加自簽SSL證書鏡像倉庫嗎?

應用背景 在企業應用Docker規劃初期配置非安全鏡像倉庫時&#xff0c;有時會遺漏一些倉庫沒配置&#xff0c;但此時應用程序已經在Docker平臺上部署起來了&#xff0c;體量越大就越不會讓人去直接重啟Docker。 那么&#xff0c;不重啟Docker能添加自簽SSL證書鏡像倉庫嗎&…

經典人體模型SMPL介紹(一)

SMPL是馬普所提出的經典人體模型&#xff0c;目前已成為姿態估計、人體重建等領域必不可少的基礎先驗。SMPL基于蒙皮和BlendShape實現&#xff0c;從數千個三維人體掃描結果得來&#xff0c;后通過PCA統計學習得來。 論文&#xff1a;SMPL: A Skinned Multi-Person Linear Mode…

Python讀取svn版本

本文將詳細介紹如何使用Python讀取svn版本。 一、安裝svn庫 首先&#xff0c;我們需要使用Python來連接svn服務器&#xff0c;并獲取版本號。這里我們使用pysvn庫來完成這個工作。 pip install pysvn需要注意的是&#xff0c;如果你需要安裝特定版本的pysvn&#xff0c;你可…

2023連鎖收銀系統該如何選?值得推薦的5款連鎖收銀系統

現在不管是連鎖店還是零售店&#xff0c;只要是開店做生意賺錢的&#xff0c;都少不了要和錢打交道&#xff0c;尤其是對連鎖店來說&#xff0c;收銀工作更是重中之重。 連鎖店涉及的門店較多&#xff0c;必須要有一套足夠優秀的連鎖收銀系統&#xff0c;才能做好每個門店的收銀…

【ARM 嵌入式 編譯系列 5 -- GCC 內建函數 __builtin 詳細介紹】

文章目錄 什么是GCC內建函數?GCC 常見內建函數GCC內建函數使用示例上篇文章:ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規范 extern “C“ 介紹 下篇文章:ARM 嵌入式 編譯系列 6 – GCC objcopy, objdump, readelf, nm 介紹 什么是GCC內建函數? GCC提供了一些專門的功能,用于…

使用 `tailwindcss-patch@2` 來提取你的類名吧

使用 tailwindcss-patch2 來提取你的類名吧 使用 tailwindcss-patch2 來提取你的類名吧 安裝使用方式 命令行 Cli 開始提取吧 Nodejs API 的方式來使用 配置 初始化 What’s next? tailwindcss-patch 是一個 tailwindcss 生態的擴展項目。也是 tailwindcss-mangle 項目重要…

redis的Key的過期策略是如何實現的?

Key的過期策略 一個redis中可能同時存在很多很多key&#xff0c;這些key可能有很大一部分都有過期時間&#xff0c;此時&#xff0c;redis服務器咋知道哪些key已經過期要被刪除&#xff0c;哪些key還沒有過期&#xff1f; 如果直接遍歷所有的key&#xff0c;顯然是行不通的&am…

Abandon_Ubuntu Declaration

鑒于以下幾個原因&#xff0c;持續到明年考研結束&#xff0c;我將不再搗鼓ubuntu和任何linux系統&#xff0c; 原因如下&#xff1a; ubuntu23.04不支持wps編輯pdf這個核心功能&#xff0c;且開機向canonial公司發送遠程遙測&#xff0c;暫時不會用iptables禁用&#xff0c;故…

第幾天(day)

廬陽區2021年信息學競賽試題 題目描述 Description 給定一個日期&#xff0c;求這一天是當年的第幾天。每年的元旦&#xff0c;1月1日&#xff0c;都是每年的第一天&#xff0c;但是每年的最后一天&#xff0c;12月31日&#xff0c;有可能是第365天&#xff0c;也有可能是第3…

2023年上半年網絡工程師上午真題及答案解析

1.固態硬盤的存儲介質是( )。 A.光盤 B.閃存 C.軟盤 D.磁盤 2.虛擬存儲技術把( )有機地結合起來使用&#xff0c;從而得到一個更大容量的“內存”。 A.內存與外存 B.Cache與內存 C.寄存器與Cache D.Cache與外存 3.下列接口協議中&…

關于安卓高版本gradle(7.0+)引入aar包報錯問題

背景 項目開發過程中&#xff0c;接入三方sdk&#xff0c;引入了本地aar包依賴&#xff0c;as rebuild項目的過程中&#xff0c;報錯&#xff0c;提示依賴找不到問題。 報錯&#xff1a;“bundleDebugAar FAILED”等 開發環境 win10 jdk11 gradle 7.5 原因 由于gradle的版…

找不到msvcp140.dll無法繼續執行代碼怎么解決?分享三個解決方法

當你在運行某個程序或游戲時遇到msvcp140.dll缺失的錯誤提示&#xff0c;你可能會感到困惑和煩惱。在修復msvcp140.dll的過程中&#xff0c;我遇到了一些挑戰&#xff0c;但最終成功解決了這個問題。以下是我總結的三個解決方法&#xff0c;希望能幫助你解決這個問題。 找不到m…

Mongodb (四十一)

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 目錄 前言 一、概述 1.1 相關概念 1.2 特性 二、應用場景 三、安裝 四、目錄結構 五、默認數據庫 六、 數據庫操作 6.1 庫操作 6.2 文檔操作 七、MongoDB數據庫備份 7.1 備…

【golang】類型推斷和變量重聲明

類型推斷是一種編程語言在編譯期自動解釋表達式類型的能力。 1.Go語言的類型推斷可以帶來哪些好處&#xff1f; 在寫代碼時&#xff0c;我們通過使用Go語言的類型推斷會節省敲擊次數&#xff0c;而節省下來的鍵盤敲擊次數幾乎可以忽略不記。但它真正的好處&#xff0c;往往會…