Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 13152|Відповідь: 2

Декілька схем для розподілених краулерів, які використовують проксі-IP

[Копіювати посилання]
Опубліковано 17.07.2018 13:54:35 | | |
Без проксі-IP робота з краулерами буде складною, тому багатьом інженерам потрібно купувати ефективні та стабільні проксі-IP. З якісною проксі-IP, чи можете ви розслабитися? Все не так просто, і також необхідно оптимізувати схему, раціонально розподіляти ресурси, підвищувати ефективність роботи та виконувати роботу з краулерами ефективніше, швидше та стабільніше.

Варіант 1: Кожен процес випадково вибирає список IP-адрес з інтерфейсного API (наприклад, витягує 100 IP одночасно) для їх перегляду, а потім викликає API для їх отримання, якщо він не вдається, і загальна логіка така:

1. Кожен процес (або потік) випадковим чином отримує партію IP-адрес з інтерфейсу та намагається отримати дані зі списку IP у циклі.

2. Якщо доступ успішний, продовжуйте брати наступний.

3. Якщо не працює (наприклад, тайм-аут, код верифікації тощо), візьміть пакет IP з інтерфейсу і продовжуйте спроби.

Недоліки рішення: кожна IP має термін придатності, якщо витягнути 100, то при використанні десятої IP більшість останніх можуть бути недійсними. Якщо ви налаштуєте HTTP-запит із тайм-аутом з'єднання 3 секунди і тайм-аутом для читання 5 секунд, ви можете втратити 3-8 секунд часу, і ці 3-8 секунд можна захопити десятки разів.

Варіант 2: Кожен процес забирає випадкову IP з API інтерфейсу для використання, а потім викликає API, щоб отримати IP, якщо він не вдається, загальна логіка така:

1. Кожен процес (або потік) випадково отримує IP з інтерфейсу і використовує цю IP для доступу до ресурсів.

2. Якщо доступ успішний, продовжуйте брати наступний.

3. Якщо не працює (наприклад, тайм-аут, код верифікації тощо), випадково обирайте IP з інтерфейсу і продовжуйте спробу.

Недоліки: Виклик API для отримання IP-адрес трапляється дуже часто, що створює великий тиск на проксі-сервер, впливає на стабільність інтерфейсу API і може бути обмежене у витягуванні. Ця схема також не підходить і не може функціонувати стійко та стабільно.

Варіант 3: Спочатку витягти велику кількість IP і імпортувати їх у локальну базу даних, а потім взяти IP з бази даних, загальна логіка така:

1. Створіть таблицю в базі даних, напишіть скрипт імпорту, запитуйте API за хвилину (зверніться до проксі-провайдера IP-сервісу) та імпортуйте список IP у базу даних.

2. Записувати час імпорту, IP, порт, час закінчення, статус доступності IP та інші поля в базі даних;

3. Напишіть скрипт захоплення, скрипт краба зчитує доступну IP з бази даних, і кожен процес отримує IP з бази даних для використання.

4. Виконайте сканування, оцініть результати, обробіть файли cookie тощо, якщо є код перевірки або збій, віддайте цю IP і змініть на нову IP.

Це рішення ефективно уникає використання ресурсів проксі-сервера, розподіляє використання проксі-IP, є більш ефективним і стабільним, а також забезпечує довговічність і стабільність роботи з краулером.




Попередній:Як використовувати Hreflang для SEO
Наступний:ПОМИЛКА 1093 (HY000): Ви не можете вказати цільову таблицю 'xxx' для upda...
Опубліковано 18.07.2018 14:50:55 |
Хіба Схема 3 і Схема 1 не однакові, якщо витягнути велику кількість IP, а ті, що не використовуються пізніше, скоро закінчаться
Опубліковано 29.01.2019 21:06:25 |
Марк, я вивчив ідею, а потім спробую її написати
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com