1. 程式人生 > >爬蟲實例(一)——爬取微博動態

爬蟲實例(一)——爬取微博動態

對象 sts search script offic 開發者 sea all 不起作用

首語:開始準備認真學習爬蟲了,先從基礎的開始學起,比如先爬取微博的個人動態。

兩個難點:獲取動態加載的內容和翻頁這兩項操作。

對象:何炅的個人

需要的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

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=1&pl_name=Pl_Official_MyProfileFeed__22&id=1003061195230310&script_uri=/hejiong&feed_type=0&pre_page=1&domain_op=100306。

第一個難點我們就解決了——獲取動態加載內容的url。

接下來看看第二個難點——如何實現翻頁

先休息了,明天繼續編輯

爬蟲實例(一)——爬取微博動態