- 1、nodejs怎麼設置cookie
- 2、簡單NodeJS爬蟲和使用cookie進行模擬登錄
- 3、nodejs跨域怎麼獲取cookie
// 獲得客戶端的Cookie
var Cookies = {};
req.headers.cookie req.headers.cookie.split(‘;’).forEach(function( Cookie ) {
var parts = Cookie.split(‘=’);
Cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || ” ).trim();
});
console.log(Cookies)
// 向客戶端設置一個Cookie
res.writeHead(200, {
‘Set-Cookie’: ‘myCookie=test’,
‘Content-Type’: ‘text/plain’
});
res.end(‘Hello World\n’);
NodeJS做爬蟲也是很方便的。因為nodejs有HTTP模塊直接可以使用,而且還有很多簡單粗暴的庫可以即拿即用。
首先,需要的庫文件,
1、superagent 是個輕量的的 http 方面的庫,就像jquery的post,和get一樣,很簡單。
2、cheerio 是一個服務端操作DOM的庫,簡直就是服務端的jquery。
好的,我們需要抓取某個網站的題目。如下圖。這個系統下,及時是遊客狀態也是可以查看題目的,只是答案我們看不到。會顯示我沒有登錄。
現在我們有個需求,先抓取15頁,根據URL的參數可以頁數就是地址中 的P。並且要有本地cookie,獲取cookie的方法,最簡單的是,利用瀏覽器登錄網站之後,在控制台直接打印document.cookie,得到之後,複製進txt文本。用fs模塊讀取並轉換成字符串。在superagent請求時,把cookie傳進去。
好了,控制台已經不輸出「未登錄」,說明已經登錄成功了。
這個沒有辦法獲取到的。
瀏覽器的同源策略,是不允許跨域讀取cookie的。
而Nodejs是服務器端,如果瀏覽器都不允許。服務器自然就獲取不到跨域cookie的信息了。
原創文章,作者:ZIMFM,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/126913.html