proxy-checker - Максимально универсальный прокси-парсер и прокси-чекер.
Почему ?
Мне, а значит и многим необходимо получать прокси для обхода бана по IP при большом количестве запросов. Этот модуль позволяет выполнять практически все задачи связанные с подготовкой прокси. Мне, а значит многим требуется собирать прокси индивидуально для некоторых сайтов, я также позаботился об этом. Надеюсь мой вклад облегчит кому-то жизнь.
С чего начать
Установим npm модуль @prohetamine/proxy-checker
$ npm install @prohetamine/proxy-checker
или
$ yarn add @prohetamine/proxy-checker
Примеры и описание
Подключение модуля
const proxy = require('@prohetamine/proxy-checker')
Функция load собирает прокси и легко их отдает через all и random.
object
ключ | значение | значение по-умолчанию | обязательный | информация |
---|
port | number | false | нет | используется для фильтра портов |
debug | boolean | false | нет | используется для отладки |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
const count = await proxy.load({
port: 8888,
debug: true
})
console.log(count) // Количество собранных прокси с портом 8888
})()
Функция load собирает прокси с интервалом в N миллисекунд и легко их отдает через all и random.
параметры | значение по-умолчанию | информация |
---|
function | () => {} | функция обратного вызова возвращающая в единственном аргументе количество загруженных IP |
int | 5000 | интервал в миллисекундах |
object | { started, port, debug } | дополнительные опции |
object
ключ | значение | значение по-умолчанию | обязательный | информация |
---|
started | boolean | false | нет | используется для мгновенной загрузки |
port | boolean | false | нет | используется для фильтра портов |
debug | boolean | false | нет | используется для отладки |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
const kill = await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Количество собранных прокси с портом 8080
}, 60000, { started: true, debug: false, port: 8080 })
console.log(proxy.all({ port: 8888 })) // Все загруженные IP адреса с портом 8888
console.log(proxy.random({ port: 80 })) // Один случайный IP адрес с портом 80
setInterval(() => {
if (proxy.all().length > 1488) {
console.log(proxy.all())
kill() // убивает текущий loadInterval
}
}, 5000)
})()
Функция all возвращает массив IP адресов когда он загружен load или loadInterval и false когда загрузка еще не произошла.
object
ключ | значение | значение по-умолчанию | обязательный | информация |
---|
port | number | false | нет | используется для фильтра портов |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
const count = await proxy.load({
debug: true
})
console.log(proxy.all({ port: 1488 })) // Все загруженные IP адреса с портом 1488
})()
Функция random возвращает один случайный IP адрес когда он загружен load или loadInterval и false когда загрузка еще не произошла.
object
ключ | значение | значение по-умолчанию | обязательный | информация |
---|
port | number | false | нет | используется для фильтра портов |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
const count = await proxy.load({
debug: true
})
console.log(proxy.random({ port: 8888 })) // Один случайный IP адрес с портом 8888
})()
Функция checkerInterval чекает прокси с интервалом в N миллисекунд для определенного сайта и легко их отдает через get.all и get.random.
параметры | значение по-умолчанию | информация |
---|
string | null | уникальный идентификатор |
object | { url, isBrowser, debugBrowser, timeout, stream, debug, indicators, session } | дополнительные опции |
object
ключ | значение | значение по-умолчанию | обязательный | информация |
---|
url | string | null | нет | ссылка на сайт |
isBrowser | boolean | false | нет | используется для проверки через браузер |
debugBrowser | boolean | false | нет | используется для отладки выключает headless у puppeteer |
timeout | int | 10000 | нет | интервал в миллисекундах |
stream | int | 2 | нет | количество одновременных потоков |
debug | boolean | false | нет | используется для отладки |
indicators | array | [] | нет | индикаторы правильно загруженных данных |
session | string | false | нет | путь для сохранения валидных IP после завершения или сохранения |
array[object]
ключ | значение | значение по-умолчанию | обязательный | информация |
---|
keyword | string | нет | да | используется для поиска на странице по ключевому слову |
selector | string | нет | да | используется для поиска на странице по дом ноде |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Количество собранных прокси
}, 60000, { started: true, debug: false })
const { key, kill, save } = await proxy.checkerInterval('chaturbate', {
url: 'https://chaturbate.com/diana_smiley/',
isBrowser: true,
debugBrowser: false,
timeout: 60000,
stream: 10,
session: __dirname + '/chaturbate.json',
debug: true,
indicators: [{
//keyword: 'close_entrance_terms',
selector: '#close_entrance_terms'
}] // Перечислите другие показатели в объектах если они требуются
})
setInterval(() => {
const proxys = proxy.get(key).all()
console.clear()
console.log(proxys, proxys && proxys.length)
if (proxys.length > 20) {
kill() // убивает текущий checkerInterval и сохраняет сессию
save() // только сохраняет сессию
}
}, 3000)
})()
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Количество собранных прокси с портом
}, 60000, { started: true, debug: false })
const keyName = null // Уникальный идентификатор для аккумуляции IP, если установлено значение null, будет сгенерировано автоматически
const { key, kill, save } = await proxy.checkerInterval(keyName, {
url: 'https://github.com/prohetamine',
timeout: 30000,
stream: 20,
session: __dirname + '/github.json',
debug: true,
indicators: [{
keyword: 'Prohetamine',
//selector: '#close_entrance_terms'
}, {
keyword: 'Stas'
}] // Перечислите другие показатели в объектах если они требуются
})
setInterval(() => {
const proxys = proxy.get(key).all()
console.clear()
console.log(proxys, proxys && proxys.length)
if (proxys.length > 20) {
kill() // убивает текущий checkerInterval и сохраняет сессию
save() // только сохраняет сессию
}
}, 3000)
})()
Функция get.all возвращает массив прочеканых checkerInterval IP адресов по уникальному идентификатору и false когда загрузка еще не произошла.
get(key)
параметры | значение по-умолчанию | обязательный | информация |
---|
string | null | да | уникальный идентификатор |
object
ключ | значение | значение по-умолчанию | обязательный | информация |
---|
port | number | false | нет | используется для фильтра портов |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Количество собранных прокси
}, 60000, { started: true, debug: false })
const { key, kill, save } = await proxy.checkerInterval('chaturbate', {
url: 'https://chaturbate.com/diana_smiley/',
isBrowser: true,
debugBrowser: false,
timeout: 60000,
stream: 10,
session: __dirname + '/chaturbate.json',
debug: true,
indicators: [{
//keyword: 'close_entrance_terms',
selector: '#close_entrance_terms'
}] // Перечислите другие показатели в объектах если они требуются
})
setInterval(() => {
const proxys = proxy.get(key).all()
console.clear()
console.log(proxys, proxys && proxys.length)
if (proxys.length > 20) {
kill() // убивает текущий checkerInterval и сохраняет сессию
save() // только сохраняет сессию
}
}, 3000)
})()
Функция get.random возвращает один случайный из прочеканых checkerInterval IP адресов по уникальному идентификатору и false когда загрузка еще не произошла.
get(key)
параметры | значение по-умолчанию | обязательный | информация |
---|
string | null | да | уникальный идентификатор |
object
ключ | значение | значение по-умолчанию | обязательный | информация |
---|
port | number | false | нет | используется для фильтра портов |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Количество собранных прокси
}, 60000, { started: true, debug: false })
const { key, kill, save } = await proxy.checkerInterval('chaturbate', {
url: 'https://chaturbate.com/diana_smiley/',
isBrowser: true,
debugBrowser: false,
timeout: 60000,
stream: 10,
session: __dirname + '/chaturbate.json',
debug: true,
indicators: [{
//keyword: 'close_entrance_terms',
selector: '#close_entrance_terms'
}] // Перечислите другие показатели в объектах если они требуются
})
setInterval(() => {
console.log(proxy.get(key).random())
}, 3000)
})()
Другие примеры
больше...
Контакты
Мой Телеграм: @prohetamine, канал
Почта: prohetamine@gmail.com
Донат денег: patreon
Если у вас есть какие-либо вопросы и/или предложения, пожалуйста, напишите мне в телеграмме, если вы найдете ошибки также дайте мне знать, я буду очень благодарен.
-------- OTHER WORLD --------
proxy-checker - The most versatile proxy parser and proxy checker.
Why ?
I, and therefore many people, need to get a proxy to bypass the ban on IP with a large number of requests. This module allows you to perform almost all tasks related to proxy preparation. I, and therefore many people, need to build proxies individually for some sites, I also took care of this. I hope my contribution will make it easier for someone life.
Get started
Install the npm module @prohetamine/proxy-checker
$ npm install @prohetamine/proxy-checker
or
$ yarn add @prohetamine/proxy-checker
Examples and description
Connecting the module
const proxy = require('@prohetamine/proxy-checker')
The load function collects proxies and easily returns them via all and random.
object
key | value | default value | required | information |
---|
port | number | false | none | used for the port filter |
debug | boolean | false | none | used for debugging |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
const count = await proxy.load({
port: 8888,
debug: true
})
console.log(count) // Number of collected proxies with port 8888
})()
The load function collects proxies with an interval of N milliseconds and easily returns them via all and random.
options | default | info |
---|
function | () => { /* ... */} | callback function returns in a single argument the number of IP loaded |
int | 5000 | interval in milliseconds |
object | { started, port, debug } | additional options |
object
key | value | default value | mandatory | information |
---|
started | boolean | false | no | use for instant download |
port | boolean | false | no | used to filter ports |
debug | boolean | false | none | used for debugging |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
const kill = await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Number of collected proxies with port 8080
}, 60000, { started: true, debug: false, port: 8080 })
console.log(proxy.all({ port: 8888 })) // All downloaded IP addresses with port 8888
console.log(proxy.random({ port: 80 })) // One random IP address with port 80
setInterval(() => {
if (proxy.all().length > 1488) {
console.log(proxy.all())
kill() // kills the current loadInterval
}
}, 5000)
})()
The all function returns an array of IP addresses when it is loaded load or loadInterval and false when the load has not yet occurred.
object
key | value | default value | required | information |
---|
port | number | false | none | used for the port filter |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
const count = await proxy.load({
debug: true
})
console.log(proxy.all({ port: 1488 })) // All downloaded IP addresses with port 1488
})()
The random function returns a single random IP address when it is loaded load or loadInterval and false when the load has not yet occurred.
object
key | value | default value | required | information |
---|
port | number | false | none | used for the port filter |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
const count = await proxy.load({
debug: true
})
console.log(proxy.random({ port: 8888 })) // One random IP address with port 8888
})()
The checkerInterval function checks proxies with an interval of N milliseconds for a specific site and easily returns them via get.all and get.random.
parameters | default value | information |
---|
string | null | unique identifier |
object | { url, isBrowser, debugBrowser, timeout, stream, debug, indicators, session} | additional options |
object
key | value | default value | mandatory | information |
---|
url | string | null | no | website link |
isBrowser | boolean | false | none | used for checking through the browser |
debugBrowser | boolean | false | none | used for debugging disables headless in puppeteer |
timeout | int | 10000 | none | interval in milliseconds |
stream | int | 2 | none | number of concurrent threads |
debug | boolean | false | none | used for debugging |
indicators | array | [] | none | indicators of correctly loaded data |
session | string | false | none | path to save valid IP addresses after completion or saving |
array[object]
key | value | default value | required | information |
---|
keyword | string | no | yes | used to search the page by keyword |
selector | string | no | yes | used for searching on a page by dom node |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Number of collected proxies
}, 60000, { started: true, debug: false })
const { key, kill, save } = await proxy.checkerInterval('chaturbate', {
url: 'https://chaturbate.com/diana_smiley/',
isBrowser: true,
debugBrowser: false,
timeout: 60000,
stream: 10,
session: __dirname + '/chaturbate.json',
debug: true,
indicators: [{
//keyword: 'close_entrance_terms',
selector: '#close_entrance_terms'
}] // List other metrics in the objects if they are required
})
setInterval(() => {
const proxys = proxy.get(key).all()
console.clear()
console.log(proxys, proxys && proxys.length)
if (proxys.length > 20) {
kill() // Kills the current checkerInterval and saves the session
save() // Only saves the session
}
}, 3000)
})()
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // The number of proxies collected with the port
}, 60000, { started: true, debug: false })
const keyName = null // A unique identifier for IP accumulation, if set to null, will be generated automatically.
const { key, kill, save } = await proxy.checkerInterval(keyName, {
url: 'https://github.com/prohetamine',
timeout: 30000,
stream: 20,
session: __dirname + '/github.json',
debug: true,
indicators: [{
keyword: 'Prohetamine',
//selector: '#close_entrance_terms'
}, {
keyword: 'Stas'
}] // List other metrics in the objects if they are required
})
setInterval(() => {
const proxys = proxy.get(key).all()
console.clear()
console.log(proxys, proxys && proxys.length)
if (proxys.length > 20) {
kill() // Kills the current checkerInterval and saves the session
save() // Only saves the session
}
}, 3000)
})()
The get.all function returns an array of checked checkerInterval IP addresses by a unique identifier and false when the download has not yet occurred.
get(key)
parameters | default value | required | information |
---|
string | null | yes | unique identifier |
object
key | value | default value | required | information |
---|
port | number | false | none | used for the port filter |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Number of collected proxies
}, 60000, { started: true, debug: false })
const { key, kill, save } = await proxy.checkerInterval('chaturbate', {
url: 'https://chaturbate.com/diana_smiley/',
isBrowser: true,
debugBrowser: false,
timeout: 60000,
stream: 10,
session: __dirname + '/chaturbate.json',
debug: true,
indicators: [{
//keyword: 'close_entrance_terms',
selector: '#close_entrance_terms'
}] // List other metrics in the objects if they are required
})
setInterval(() => {
const proxys = proxy.get(key).all()
console.clear()
console.log(proxys, proxys && proxys.length)
if (proxys.length > 20) {
kill() // Kills the current checkerInterval and saves the session
save() // Only saves the session
}
}, 3000)
})()
The function get.random returns one random of the checked checkerInterval IP addresses by a unique identifier and false when the download has not yet occurred.
get(key)
parameters | default value | required | information |
---|
string | null | yes | unique identifier |
object
key | value | default value | required | information |
---|
port | number | false | none | used for the port filter |
const proxy = require('@prohetamine/proxy-checker')
;(async () => {
await proxy.loadInterval(count => {
console.log(`count parse: ${count}`) // Number of collected proxies
}, 60000, { started: true, debug: false })
const { key, kill, save } = await proxy.checkerInterval('chaturbate', {
url: 'https://chaturbate.com/diana_smiley/',
isBrowser: true,
debugBrowser: false,
timeout: 60000,
stream: 10,
session: __dirname + '/chaturbate.json',
debug: true,
indicators: [{
//keyword: 'close_entrance_terms',
selector: '#close_entrance_terms'
}] // List other metrics in the objects if they are required
})
setInterval(() => {
console.log(proxy.get(key).random())
}, 3000)
})()
Other examples
more...
Contacts
My Telegram: @prohetamine, channel
Email: prohetamine@gmail.com
Donat money: patreon
If you have any questions and/or suggestions, please email me in telegram, if you find any bugs also let me know, I will be very grateful.