話說周圍還在用人人網的人真是越來越少了,有一天閒來無事開啟人人,發現最新的狀態還是2023年12月的,好多好友也已經不怎麼聯絡了,真是物是人非啊。翻了翻自己的狀態,都是大學本科時發的,感覺挺有紀念意義的,就想著有空寫個爬蟲把自己的狀態抓下來做個備份,萬一哪天人人掛了,還能給自己的大學生活留個念想……
由於抓取人人狀態需要登入,我參考了 和 這兩篇文章。又由於狀態資訊不是直接寫在 html 檔案中,而是使用 xmlhttprequest 請求伺服器得到 json 資料後再對網頁進行區域性更新,我閱讀了 這篇文章對該種情況下的抓取方式進行學習,在此感謝兩位作者。
使用 chrome 的開發者工具抓取登入過程中的 xhr 型別的資料報,如下圖,可以看到 request url: ,以及請求的方式:post。url 最後是uniquetimestamp,從字面意思理解是時間戳。根據參考的第二篇文章,知道它的組成為「年(2016),月(0,範圍為0~11),星期(4,範圍為0~6),時(19,範圍為0~23),秒(37,範圍為0~59),毫秒(96,範圍為0~999)」,接下來就只需用 python 中對應的時間函式表示出來,詳見** login 函式部分。根據自己的測試,感覺人人的伺服器沒有對時間戳進行校驗,也就是說,自己任意生成的時間戳(不一定是當前時間)也能登入成功。
同樣使用 chrome 的開發者工具,抓取跳轉到狀態頁( 號 )的資料報,如下圖所示。可以看到 request url 以及請求方式,由於 request url 中有很多引數,我將它複製下來在新的標籤頁裡開啟,然後不斷刪除引數,最後發現只有「userid」及「curpage」兩個引數是必須的,這樣就可以將 request url 構造出來。
C 判斷主機是否處於聯網狀態
直接讓本機訪問乙個 如果成功的話,就說明成功聯網,沒有訪問成功,則說明沒有聯網!include include pragma comment lib,ws2 32.lib define len 1024 接收資料的大小 using namespace std int main if lobyte w...
爬蟲總結備份
爬蟲要根據當前url位址對應的響應為準,當前url位址的elements的內容和url的響應不一樣 頁面上的資料在 js生成的 requsets中解決編譯碼的方法 requests.text 和requests.content的區別 使用 ip 檢測ip的可用性 requests小技巧 urllib...
python爬蟲人人網登陸
匯入模組from urllib import request,parse from http import cookiejar 儲存cookie,例項化cookiecookie cookiejar.cookiejar com plogin.do 登入賬號密碼data 轉換格式data parse.u...