一般的不需要登陸的網頁抓取:(c#)
using system;
using system.io;
using system.net;
using system.text;
namespace csharptest0
catch (exception ex)
finally }}
}
然而需要登陸後,才能獲取的授權網路資源的抓取,要費一些周折。
下面以baixing.com為例講述抓取授權頁面的過程。
首先,我們需要使用httpanalyzer來分析資料流。
httpanalyzer軟體ready後,清空瀏覽器的歷史記錄和已儲存的密碼。
開啟瀏覽器,ie或者chrome都可以。輸入要訪問的uri。開啟httpanalyzer,開啟http資料流抓取功能。再按回車鍵。
之所以沒有在開啟瀏覽器前開啟一般開啟瀏覽器前開啟httpanalyzer。是因為瀏覽器在啟動時會鏈結到我們設定好了的homepage,干擾資料流的分析。
好了,現在如果前述動作執行正確的話,瀏覽器應該進入登陸介面了,而不是我們需要的uri。
接著輸入使用者名稱密碼,進行登陸。完成以後,關閉瀏覽器,進入httpanalyzer介面,停止http資料流抓取。
好了現在分析httpanalyzer抓取到的資料流。
我想要的資源uri :
首先,瀏覽器發出乙個普通的上述httprequest,response是的code是302 not found。response的header裡set-cookie:__trackid=123456789012345。共15位,這是很重要的cookie,接下來的httprequest都會有用到 。response其他的header欄位不重要,暫時忽略。
接下來,瀏覽器使用了剛獲取的__trackid再次傳送了乙個httprequest,url是/oz/login?&redirect=?
cookie有兩個,乙個是__trackid,還有乙個就是_auth_redirect=http%3a%2f%2fwww.baixing.com%2fa%2fb%2fc%2f%2f。
對應的reponse會返回個cookie名稱是__uuid。
然後,再次傳送httprequest,這次是獲取登入介面url是
/oz/login?
&redirect=
?httprequest的cookie變了,變成三個了,除了__trackid和_auth_redirect外,還有個——uuid。
response的cookie會有個token,這個是在post資料時,和使用者名稱密碼一起發給server的,是會話的乙個標記。
接著,你輸入的使用者名稱密碼,額,post個httprequest。post data有使用者名稱和密碼以及token。
post網頁後拿到的response的cookie會有名為:__t,__u,__c,__n,嗯,到此,我們拿到了所有的cookie。
加上之前的__trackid和__uuid。就能抓取到授權網頁了。
需要源**的,留下郵箱索取。
百姓網今晚在復旦的講座
從客齊集到百姓網的這幾年,我們的活動從來沒有離開過校園,比如這個列表 客齊集最近的大學公益講座。百姓網的員工都離開學校不久,如果能用講座的方式給現在還在學校的學弟學妹們一些幫助,是我們最願意做的事情。這一系列的活動的主題是 百姓網 燈塔沙龍.這個沙龍主要目的是為熱愛網際網路行業 正要走向工作崗位的優...
百姓網對開發者的風水
經過一段時間觀察,我發現百姓網的辦公室對於開發者來說,風水不好,需要改變。1 自己坐在竹林裡的亭子裡,小風在吹,我在寫程式 2 自己坐在人民廣場地鐵站裡放了一張桌子寫程式。我覺得我們有變成第二種的傾向。如果乙個開發者認為自己心神不寧,惶惶不可終日,就是開發的風水不好了。如下是我認為風水的問題 1。會...
百姓網對開發者的風水
經過一段時間觀察,我發現百姓網的辦公室對於開發者來說,風水不好,需要改變。1 自己坐在竹林裡的亭子裡,小風在吹,我在寫程式 2 自己坐在人民廣場地鐵站裡放了一張桌子寫程式。我覺得我們有變成第二種的傾向。如果乙個開發者認為自己心神不寧,惶惶不可終日,就是開發的風水不好了。如下是我認為風水的問題 1。會...