知乎爬蟲之3:請求分析(附贈之前爬取的資料一份),爬蟲附贈

來源:互聯網
上載者:User

知乎爬蟲之3:請求分析(附贈之前爬取的資料一份),爬蟲附贈

本文由博主原創,轉載請註明出處:我的部落格-知乎爬蟲之3:請求分析

git爬蟲項目地址(關注和star在哪裡~~):https://github.com/MatrixSeven/ZhihuSpider (已經完結)

附贈之前爬取的資料一份(mysql): 連結:https://github.com/MatrixSeven/ZhihuSpider/README.MD 只下載不點贊,不star,差評差評~藍瘦香菇)

咱們上一篇所長說了爬蟲的爬取大概思路:知乎爬蟲之2:爬蟲流程設計(附贈爬出的資料庫),這一篇幅就來研究分析下類比登陸知乎.

ps:拿資料的好多啊~只下載不點贊,不star,藍瘦香菇

首先來說,網上類比登陸知乎的文章已經是多不勝數,而且類比登陸知乎也比類比登陸微博百度簡單很多,但是本著善始善終的原則,咱們還是重頭到尾的過上一遍.

1.工具

恩,工具呢,就用咱們自己平時用的瀏覽器就ok.牛逼閃閃的f12,就足夠用.然後在使用下Fiddler來查看下登陸狀態…

2.登陸分析

開啟http://www.zhihu.com,點擊登陸,然後直接F12,調試出開發人員工具,選擇NetWork,輸入帳號 密碼 和驗證碼,點擊登陸,發現右側出現了網路請求.

發現有個email的請求,請求資訊為:

請求地址:https://www.zhihu.com/login/email請求方式:post

下面的內容先不去管它,直接拽到最下面:

..發現有如下資訊

_xsrf:xxxxxxxxxxxxxxxxxxpassword:xxxxxcaptcha:HDMGemail:xxxxxx@xx.com

恩,就是Post一下,看看登陸時候成功,並且抓一下登陸失敗時的錯誤資訊.

故意輸入錯誤郵箱 ,密碼

拿到如下結果:

1. 郵箱不存在:

2. 密碼錯誤:

那麼登陸成功是怎麼一種標識狀態呢?

咱們這裡藉助下Fiddler

開啟Fiddler,再次進項知乎登陸,然後找到 https://www.zhihu.com/login/email 這個請求.發現登陸成功後返回了一個Json串:

恩,那麼還有一個_xsrf,那麼這個參數在哪裡呢?

其實_xsrf這種東西,基本都存在於頁面的源碼裡,開啟登陸頁面,右鍵查看查看原始碼,可發現:

哈哈,原來在一個隱藏欄位裡....

哈哈,這是不是故意就讓人爬的了...過程比我想象中的簡單很多..

但是具體行不行呢,還得上代碼試一試哈哈...

 

## 3.跟隨/關注分析

直接開啟https://www.zhihu.com/people/Sweets07/followers,然後f12,開始分析請求.

直接滾動頁面,發現出現非同步請求,請求地址為:

https://www.zhihu.com/api/v4/members/Sweets07/followers?per_page=10&include=data%5B%2A%5D.employments%2Ccover_url%2Callow_message%2Canswer_count%2Carticles_count%2Cfavorite_count%2Cfollower_count%2Cgender%2Cis_followed%2Cmessage_thread_token%2Cis_following%2Cbadge%5B%3F%28type%3Dbest_answerer%29%5D.topics&limit=10&offset=30

可發現請求參數為:

include:data[*].employments,cover_url,allow_message,answer_count,articles_count,favorite_count,follower_count,gender,is_followed,message_thread_token,is_following,badge[?(type=best_answerer)].topicslimit:10offset:30

返回的Json為:

哇塞.裡面有各種資訊...

如:

1. 下一個請求的地址

2. 人員資訊,id啊,頭像啊,學校,公司,簽名啊,關注人數.....

恩,其實咱們拿一部分就夠了,對,就是那個ID...有的id就可以直接開啟個人頁面了..然後說這個請求有些問題,因為直接帶著cookie get會出現一個錯誤:

{"message":"身份未經過驗證","code":100,"name":"AuthenticationException"}

 

這個是因為在請求的時候多了一個頭:

那麼這個參數在哪裡呢??

找來找去,最後發現,這個參數在請求個人首頁資訊的cookie裡.

跟隨者和粉絲差不多.....

 

就到這裡吧,下一步開始擼代碼...

//吾愛Java(QQ群):170936712(點擊加入)

知乎爬蟲之2:爬蟲流程設計(附贈爬出的資料庫)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.