1. **天貓頁面重定向
嘗試抓取**頁面
列印res.statuscode,res.headers.location
res.statuscode
返回的狀態碼;
res.headers.location
返回的位址
302 move temporarily請求的資源臨時從不同的 uri響應請求。由於這樣的重定向是臨時的,客戶端應當繼續向原有位址傳送以後的請求。只有在cache-control或expires中進行了指定的情況下,這個響應才是可快取的。
如果這不是乙個 get 或者 head 請求,那麼瀏覽器禁止自動進行重定向,除非得到使用者的確認,因為請求的條件可能因此發生變化。
注意:雖然rfc 1945和rfc 2068規範不允許客戶端在重定向時改變請求的方法,但是很多現存的瀏覽器將302響應視作為303響應,並且使用 get 方式訪問在 location 中規定的 uri,而無視原先請求的方法。狀態碼303和307被新增了進來,用以明確伺服器期待客戶端進行何種反應。
**返回給我們的只是乙個臨時的html頁面,並不是真正的還有資料的頁面。
判斷是否重定向,遞迴尋找真頁面
if(res.statuscode == 302 || res.statuscode == 301)次重定向`,res.headers.location);
geturl(res.headers.location,success)
}
2. 轉碼
拿到了真實頁面之後,開啟發現有編碼錯誤的問題
引用gbk
模組
gbk
提供了編碼轉換的方法
gbk.tostring('utf-8',data);
結束
完整**
var index = 0;
} else if(res.statuscode == 302 || res.statuscode == 301)次重定向`,res.headers.location);
geturl(res.headers.location,success)
} });
req.end();
req.on('error',()=>)
}
Nodejs爬蟲實戰(六)
1.處理資料 上一步獲取結果中含有p標籤,用正則篩選,去掉標籤,只留下文字。var myhtml document.queryselector read content innerhtml.replace g,統計詞的個數首先需要文字分詞 分詞模組segment 盤古分詞元件 例項化,使用預設的識別...
nodejs簡易爬蟲
我的爬蟲程式是用nodejs寫的,因為最近在學這個東西,其中使用了express框架,以及cheerio和superagent兩個模組。cheerio模組是nodejs處理html內容的神器,例如var cheerio.load html 將頁面的html內容載入下來後,便可使用jquery語法進行...
網路爬蟲 Nodejs
要抓取網頁資訊首先要獲取部落格主頁的html資訊,使用 http.get options callback 方法獲取資訊,如下 其中url 為我的 部落格主頁,獲取主頁html後,需要對資訊進行挑選,在部落格主頁右鍵選擇檢視原始碼,可以找到所需資訊如下 newcomments class panel...