當前位置:編程學習大全網 - 源碼下載 - 如何用 Python 爬取需要登錄的網站

如何用 Python 爬取需要登錄的網站

最近我必須執行壹項從壹個需要登錄的網站上爬取壹些網頁的操作。它沒有我想象中那麽簡單,因此我決定為它寫壹個輔助教程。

在本教程中,我們將從我們的bitbucket賬戶中爬取壹個項目列表。

教程中的代碼可以從我的 Github 中找到。

我們將會按照以下步驟進行:

提取登錄需要的詳細信息

執行站點登錄

爬取所需要的數據

在本教程中,我使用了以下包(可以在 requirements.txt 中找到):

Python

requests

lxml

1

2

requests

lxml

步驟壹:研究該網站

打開登錄頁面

進入以下頁面 “bitbucket.org/account/signin”。妳會看到如下圖所示的頁面(執行註銷,以防妳已經登錄)

仔細研究那些我們需要提取的詳細信息,以供登錄之用

在這壹部分,我們會創建壹個字典來保存執行登錄的詳細信息:

1. 右擊 “Username or email” 字段,選擇“查看元素”。我們將使用 “name” 屬性為 “username” 的輸入框的值。“username”將會是 key 值,我們的用戶名/電子郵箱就是對應的 value 值(在其他的網站上這些 key 值可能是 “email”,“ user_name”,“ login”,等等)。

2. 右擊 “Password” 字段,選擇“查看元素”。在腳本中我們需要使用 “name” 屬性為 “password” 的輸入框的值。“password” 將是字典的 key 值,我們輸入的密碼將是對應的 value 值(在其他網站key值可能是 “userpassword”,“loginpassword”,“pwd”,等等)。

3. 在源代碼頁面中,查找壹個名為 “csrfmiddlewaretoken” 的隱藏輸入標簽。“csrfmiddlewaretoken” 將是 key 值,而對應的 value 值將是這個隱藏的輸入值(在其他網站上這個 value 值可能是壹個名為 “csrftoken”,“ authenticationtoken” 的隱藏輸入值)。列如:“Vy00PE3Ra6aISwKBrPn72SFml00IcUV8”。

最後我們將會得到壹個類似這樣的字典:

Python

payload = {

"username": "<USER NAME>",

"password": "<PASSWORD>",

"csrfmiddlewaretoken": "<CSRF_TOKEN>"

}

1

2

3

4

5

payload = {

"username": "<USER NAME>",

"password": "<PASSWORD>",

"csrfmiddlewaretoken": "<CSRF_TOKEN>"

}

請記住,這是這個網站的壹個具體案例。雖然這個登錄表單很簡單,但其他網站可能需要我們檢查瀏覽器的請求日誌,並找到登錄步驟中應該使用的相關的 key 值和 value 值。

  • 上一篇:上海鐵路托運電話? 行李包快運處?
  • 下一篇:優秀教師的成長路徑
  • copyright 2024編程學習大全網