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