Masalahnya ialah ini saya seorang pemula yang baru mula belajar nod. Kemudian saya sedang membaca novel baru-baru ini, tetapi terdapat terlalu banyak iklan di tapak web novel percuma tersebut, jadi saya bercadang untuk menulis perangkak untuk merangkak ke bawah keseluruhan novel, tetapi bilangan permintaan url terlalu kerap, supaya ia akan menjadi terbalik -merangkak dan disekat. Saya cuba meningkatkan selang permintaan untuk mengelakkannya, tetapi saya tidak menemui apa-apa kesan secara tidak sengaja saya mendapati bahawa saya boleh menukar alamat IP untuk mengelakkannya , jadi saya datang ke sini untuk bertanya kepada yang pakar Jika anda tahu apa-apa, boleh kongsikan sekejap, terima kasih ya Allah.
Saya ingin menekankan bahawa masalahnya ialah bagaimana menukar IP nod untuk mengelakkan anti pendakian
Rangka kerja yang digunakan termasuk superagent, cheerio, async...Terima kasih ya Allah.
Kod:
var superagent = require('superagent');
var cheerio = require('cheerio');
var file = require('./writeText.js');
require('superagent-charset')(superagent);
var str = '';
var count = 150;
var fetchUrl = function (url, callback, len) {
count++;
getArticle(url, callback, len);
}
function getArticle (url, callback, len) {
superagent.get(url)// 'http://m.kanshuzw.com/4/4201/'
.proxy(proxy)
.charset('gbk')
.end(function (err, sres) {
if (err) {
return console.error(err);
} else {
var $ = cheerio.load(sres.text);
file.writeFile($('#nr_title').text() + '\n' + $('#nr').text(), 'C:\Users\Administrator\Desktop\nodeTextTest\writeFileTest-' + count + '.txt');
$('.nr_page .dise').each(function (idx, element) {
var $element = $(element);
if ($element.text() === '下一页') {
superagent.get('http://m.kanshuzw.com' + $element.attr('href'))
.set("X-Forwarded-For", ip)
.proxy(proxy)
.charset('gbk')
.end(function (err, sres) {
if (err) {
console.log('2 error end.');
return console.error(err);
}
var $ = cheerio.load(sres.text);
file.appendFile($('#nr_title').text() + '\n' + $('#nr').text(), 'C:\Users\Administrator.lic-PC\Desktop\nodeTextTest\writeFileTest-' + count + '.txt');
console.log('progress: ' + count + '/' + len);
callback(null, url + ' html content');
});
} else if ((idx + 1) === $('.nr_page .dise').length) {
console.log('progress: ' + count + '/' + len);
callback(null, url + ' html content');
}
});
}
})
}
Menunggu tuhan yang agung
Anti-merangkak bermakna program kawalan tidak boleh menggunakan satu alamat IP untuk merangkak tapak web yang sama beberapa kali pada kekerapan yang sangat pantas Kini terdapat kumpulan IP, program ini boleh menggunakan berbilang IP untuk memulakan permintaan. Dalam kes ini, Perkara yang anda lakukan adalah dengan kerap menukar IP yang digunakan oleh program Contohnya, mengikut kekerapan merangkak anda, setengah jam atau setengah hari, atau lebih lama ialah selang masa IP untuk program perangkak Berikut ialah pautan, Agen nod, mungkin berguna/q/10...