爬蟲實例(一)——爬取微博動態
首語:開始準備認真學習爬蟲了,先從基礎的開始學起,比如先爬取微博的個人動態。
兩個難點:獲取動態加載的內容和翻頁這兩項操作。
對象:何炅的個人
需要的URL:
首頁url:https://weibo.com/hejiong?is_search=0&visible=0&is_all=1&is_tag=0&profile_ftype=1&page=1#feedtop
我們可以直接用get方法請求該URL,但是註意要帶上cookies,這樣才能得到網頁信息。cookies可以直接使用開發者工具來查找。
import requests urll="https://weibo.com/hejiong?is_search=0&visible=0&is_all=1&is_tag=0&profile_ftype=1&page=1#feedtop" r=requests.get(urll,cookies=cookiess)#必須帶上cookies才能獲得網頁信息。 print(r.text)
這裏就出現了之前講到的一個難點——頁面內容並不是完整顯示地,有部分內容動態加載,只有你拉到底部才會加載出來。
而我們之前的代碼是爬取不到動態加載的內容的,這裏就需要對動態加載的內容進行分析一下了
打開瀏覽器的開發者工具,查看xhr內容,可以確定下面畫紅框的就是動態加載的內容。
我們可以查看該請求的url,一個頁面一般會動態加載兩次,我們可以比較一下這兩個動態加載的url,可以發現只有兩處不同————_rnd和pagebar
經過自己的試驗,可以發現_rnd這個參數根本不起作用,只有pagebar起作用,所以我們可以直接把_rnd這部分給刪掉
於是第一個頁面的動態加載的url就可以寫成:https://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=100306&is_search=0&visible=0&is_all=1&is_tag=0&profile_ftype=1&page=1&pagebar=0&pl_name=Pl_Official_MyProfileFeed__22&id=1003061195230310&script_uri=/hejiong&feed_type=0&pre_page=1&domain_op=100306和
第一個難點我們就解決了——獲取動態加載內容的url。
接下來看看第二個難點——如何實現翻頁
先休息了,明天繼續編輯
爬蟲實例(一)——爬取微博動態