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

Вид: 585936|Відповідь: 70

[Консольна програма] .net/c# Шлях до оптимізації веб-краулерів

  [Копіювати посилання]
Опубліковано 19.04.2018 14:21:02 | | | |
0x00

Вебкраулер (також відомий як павутинний бот, павутинний бот, більш відомий як павутинний мисливець у спільноті FOAF) — це програма або скрипт, який автоматично збирає інформацію про Всесвітню павутину відповідно до певних правил. Інші менш поширені назви включають мурах, автоіндексів, симуляторів або черв'яків.

0x01

Простіше кажучи, краулери збирають дані за власними правилами, аналізують захоплені дані і отримують корисні дані для себе.

0x02

Оптимізацію веб-краулера можна поділити на два етапи:

1: Оптимізувати під час скрейпінгу даних;

2: Оптимізувати обробку результатів захоплення;

Сьогодні ми говоримо лише про оптимізацію процесу скрапінгу!

0x03

Я підсумував кілька моментів щодо оптимізації в процесі сканування:

1: Його можна оптимізувати за фізичною адресою, наприклад: цільовий ресурсний сервер — хост Tencent Cloud у Шанхаї, ми намагаємося обрати сервер у тому ж регіоні, тобто сервер у регіоні Шанхай, не обираємо сервер у Пекіні, Ціндао та інших регіонах, але також намагаємося обрати сервер у тій самій IDC комп'ютерній кімнаті, ми знаємо, що цей ресурсний сайт є сервером Tencent Cloud, ми намагаємося розмістити краулер на сервері Tencent Cloud, а не на сервері Alibaba Cloud!

2: Обирайте стабільну та швидку мережу, зазвичай краулери мають високі вимоги до якості мережі, намагайтеся не використовувати домашню мережу, обирайте корпоративну мережу або купуйте сервер для збору даних.

3: Обери більш ефективну мову краулерів, чув, що python краще працює з краулерами, але я ним не користувався, і протестую пізніше, сьогодні я в основному пояснюю це на мові .net.

0x04

Для таких речей, як швидкі покупки, вимоги до швидкості захоплення високі, це можна описати як питання часу, рано отримати дані, підвищити шанси на захоплення, нижче я написав демо з консоллю, тест на отримання даних цього сайту, як показано на рисунку нижче:


(Чим коротший час, тим швидше)

Наведені вище рейтинги даних:1: Нативно оптимізований код, 2: Рідний код, 3: Сторонні плагіни dll (пакети)

0x05

Чому сторонні плагіни (пакети) займають найбільше часу? Сторонні плагіни насправді є великою кількістю інкапсуляцій рідного коду, великою кількістю логічних рішень і досить універсальними, що може призвести до повільного повзання.

Ось рідний код:



Рідний код знаходиться лише на кілька рядків вище.Середній час все ще становить 184 мілісекунди,Чим простіший код, тим складніше його оптимізуватиЧи вважаєте ви, як можна оптимізувати цей код так, щоб досягти середнього часу 99 мілісекунд?Різниця у швидкості подвоюється!

0x06

Якщо цільовий ресурсний сервер підтримує стиснення gzip, коли ми заходимо на сайт і браузер запитує сайт, заголовок запиту матиме такі параметри:

Параметри заголовка відповіді:






Вступ до «Прийняття-кодування»: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding

Простими словами:

Клієнт каже:Я підтримую алгоритм стиснення "gzip, deflate, sdch, br", ви можете використовувати будь-який варіант для повернення даних.

Офіціант сказав:Я підтримую алгоритм стиснення gzip, тому використаю алгоритм gzip для стиснення даних до вас

Клієнт каже:Добре, тоді я розшифрую отримані дані за допомогою алгоритму gzip

Алгоритм gzip, який може стискати передані дані та суттєво зменшувати переданий вміст, тому ефективність запитів підвищується, тому оптимізований код виглядає так:


Хоч це й дрібниця, ефективність можна сказати, що вона подвоїлася! Це еквівалентно дані, зібраним за два дні, і тепер їх можна зібрати за 1 день, і ця стаття присвячена друзям, які навчаються скраулінгу.

Примітка: алгоритм стиснення gzip не має нічого спільного з мовою програмування!

Нарешті, додайте вихідний код:

Туристи, якщо ви хочете побачити прихований контент цього допису, будь ласкаВідповідь

Забити

Кількість учасників2МБ+1 Сприяють+2 Колапс причина
CONNTFS + 1 Дуже потужно!
Маленький новачок, який любить вчитися + 1 + 1 Підтримайте власника, щоб він написав хороший пост, і я теж напишу гарний пост!

Переглянути всі рейтинги





Попередній:З'являються звіти про новачків у міжнародній практиці
Наступний:.net/c# Підручник з системи розпізнавання CAPTCHA наступного покоління 2.3
Опубліковано 31.12.2019 10:48:25 |
Сяобай не міг постраждати. Чи існує програмне забезпечення, схоже на однокліковий збір великих даних?
Опубліковано 10.06.2019 14:11:09 |
Сяобай не міг постраждати. Чи існує програмне забезпечення, схоже на однокліковий збір великих даних?
Опубліковано 15.10.2019 10:29:57 |
ГАНДЖУЕТІНГХАОВАНДЕ КАНН
Опубліковано 20.04.2018 12:35:21 |
Дякую, що поділилися
Опубліковано 25.04.2018 11:33:55 |
Колекція, можливо, корисна.
Опубліковано 17.05.2018 18:02:21 |
Колекція оптимізації веб-краулерів «Дорога до веб-краулерів»
Опубліковано 18.05.2018 16:10:57 |
Оооо
Опубліковано 18.07.2018 14:43:07 |
Подивись, чи це працює
Опубліковано 20.07.2018 10:09:50 |
ДАДСАДСАДСАД
Опубліковано 13.08.2018 13:06:50 |
Перегляньте цей вихідний код
Опубліковано 20.08.2018 14:00:52 |

Дякую, що поділилися
Опубліковано 30.08.2018 11:42:26 |
srkskrskrskrskrskr
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com