#javascript #node.js #web-scraping #tor
#javascript #node.js #очистка веб-страниц #tor
Вопрос:
У меня есть следующий код:
var tr = require('tor-request');
tr.TorControlPort.password = '***'
tr.request('https://api.ipify.org', (err, resp, ip) => {
console.log('initial ip: ' ip)
})
function torRequest() {
tr.renewTorSession((err, msg) => {
console.log(msg);
tr.request('https://api.ipify.org', (err, resp, ip) => {
console.log('ip: ' ip)
})
})
}
torRequest();
for ( let i = 0; i < 2; i ) {
torRequest();
}
И мой вывод:
Tor session successfully renewed!!
Tor session successfully renewed!!
Tor session successfully renewed!!
ip: 46.165.245.154
ip: 46.165.245.154
ip: 46.165.245.154
initial ip: 176.10.107.180
Когда я вызываю torRequest
более одного раза, все запросы возвращаются с одним и тем же ip. Возможно ли запустить его в цикле?
Комментарии:
1. Возможно, вам следует проверить
err
аргумент. У вас может возникнуть ошибка, например, если существует ограничение на то, сколько раз вы можете обновлять свой IP за заданный промежуток времени.2. Я сделал, ошибок не было
3. Что
msg
содержит?4. Я обновил сообщение
Ответ №1:
Вам необходимо явно обновить сеанс tor
tr.newTorSession( (err) =>
{
requestIP();
return;
});
Также добавьте это
tr.setTorAddress('localhost', 9050);
после
tr.TorControlPort.password = '***'
newTorSessio :
module.exports = {
// <snip>
/**
* Helper object to communicate with the tor ControlPort. Requires an enabled ControlPort on tor.
*/
TorControlPort: {
password: "", // default ControlPort password
host: "localhost", // default address
port: 9051, // default ControlPort
/**
* @param {Array.string} commands - signals that are sent to the ControlPort
*/
send: function (commands, done(err, data))
}
/**
* A set of predefined TorControlPort commands to request and verify tor for a new session (get a new ip to use).
*
* @param {function} done - the callback function to tell you when the process is done
* @param {object} err - null if tor session renewed successfully
*/
newTorSession: function ( done(err) ) // clears and renews the Tor session (i.e., you get a new IP)
}
вот и все.. это сработает .. в моем случае.. IP будет обновлен после 5-6 раз
Удачи,’.