首頁 > 後端開發 > Python教學 > 使用 selenium 讀取需要登入會員的網頁

使用 selenium 讀取需要登入會員的網頁

DDD
發布: 2024-12-08 10:22:15
原創
737 人瀏覽過

使用selenium 寫爬蟲讀取網頁內容是很常見的需求,不過你可能會遇到需要先登錄帳號才能爬取內容的網頁,像是博客來上限制級的書就是這樣的例子,你會看到如下的交談窗:

使用 selenium 讀取需要登入會員的網頁

由於登錄帳號後會利用 cookie 記錄已登錄資訊,為了讀取這樣的網頁,我們可以先手動登錄,登錄之後匯出 cookie 到檔案。之後利用 selenium 爬取網頁時,再將匯出的 cookie 重新加入,重新整理網頁即可正常讀取網頁內容了。

匯出 cookie

請先利用 selenium 開啟欲讀取的網頁,這裡以部落格來為例:

這時請依照正常程序登入會員,然後安裝 cookie_editor 外掛:

使用 selenium 讀取需要登入會員的網頁

請記得切回部落格來的首頁,利用外掛以 JSON 格式匯出所有的 cookie:

使用 selenium 讀取需要登入會員的網頁

它會將 cookie 內容複製到剪貼簿上,請自行貼到文字編輯器存檔。

重新加入 cookie

接著把 selenium 關閉,再重新開啟:

要加入 cookie,一定要在跟 Cookie 相同網域的網頁,所以要記得先開啟部落格來網頁。接著就可以開啟儲存 cookie 的檔案,載入成為 Pytho 的字典:

再把 cookie 一一加回去:

這時你應該會看到以下的錯誤:

這是因為cookie-editor 匯出的資料中,在sameSite 屬性中是以null 表示"no_restriction" 表示沒有限制一定要是同一個網站,但是selenium 只認得"Strict", "Lax", "None"這三種限制,所以診斷為錯誤,我們必須手動修改JSON 檔,自行把所有sameSite屬性值都改為"None"(注意是字串喔),也請檢查把網域不是".books.com.tw " 的cookie 刪除:

修改完之後,重新載入並加入 cookie 就不會出錯了。

重新整理網頁讓 cookie 生效

加入 cookie 後,你看到的畫面仍然是未登入的畫面:

使用 selenium 讀取需要登入會員的網頁

必須重新整理網頁才能讓 cookie 生效:

看到的就是登錄會員的頁面了:

使用 selenium 讀取需要登入會員的網頁

這樣就可以利用 selenium 讀取需要登入會員的頁面了。

最後要提醒的就是 cookie 都有時效,如果一段時間過後無法利用先前儲存的 cookie 登錄,只要重新依據上述步驟重新取得 cookie 就可以了。

以上是使用 selenium 讀取需要登入會員的網頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板