Nodejs爬蟲實戰(四)

2021-09-28 18:25:56 字數 1463 閱讀 9316

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...