1 本節目標git
本次爬取的日標是新浪微博用戶的公開基本信息,如用戶暱稱、頭像、用戶的關注、粉絲列表以github
及發佈的微博等,這些信息抓取以後保存至 MongoDB。網絡
2.如何實現:代理
以微博的幾個大 V爲起始點,爬取 他們各內的粉絲和關注列表,而後獲取粉絲和關注列表的粉絲和關注列表,以 此類推,這樣下去就可 以實現遞歸爬取。 若是一個用戶與其餘用戶有社交網絡上的關聯,那他們的信息就會被爬蟲抓取到,這樣咱們就能夠作到對全部用戶的爬取 。 經過這種方式,咱們能夠獲得用戶的惟一 ID, 再根據 ID獲 取每一個用戶發佈的微博便可 。遞歸
3. 分析接口
爬取站點是: https://m.weibo.cn,此站點是微博移動端的站點 。 打開該站點會跳轉到登陸頁面,這是由於主頁作了登陸限制 。 不過咱們能夠直接打開某個用戶詳情頁面it
新浪微博的反爬能力很是強,若是沒有登陸而直接請求微博的 API接口,這很是容易致使 403狀態碼。因此在這裏咱們實現一個 Middleware,爲每一個 Request添加隨機的 Cookies。io
微博還有一個反爬措施就是,檢測到同一 IP請求量過大時就會出現 414 狀態碼 。 若是遇到這樣的狀況能夠切換代理。微博
Github:https://github.com/chengchenga/weibopaqu/commit/832973f5832924207294ef3b4e1258c864226bb3class