Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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, когато влезем в сайта и браузърът го поиска, заглавието на заявката ще има следните параметри:

Параметри на заглавието на отговора:






Въведение в "Accept-Encoding": https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding

На прост език:

Клиентът казва:Поддържам алгоритъма за компресия "gzip, deflate, sdch, br", можеш да използваш каквото искаш при връщане на данни.

Сервитьорът каза:Аз поддържам алгоритъма за компресия на gzip, затова ще използвам алгоритъма gzip, за да компресирам данните към вас

Клиентът казва:Добре, тогава ще декриптирам получените данни с алгоритъма gzip

gzip алгоритъм, който може да компресира предоставените данни и значително да намали предаваното съдържание, така че ефективността на заявката ще се подобри, така че оптимизираният код е следният:


Въпреки че е малък детайл, ефективността може да се каже, че е удвоена! Това е еквивалентно на данните, които сте събрали за два дни, а сега могат да бъдат събрани за 1 ден, а тази статия е посветена на приятели, които учат да обхождат.

Забележка: Алгоритъмът за компресия на gzip няма нищо общо с езика за програмиране!

Накрая, прикачете изходния код:

Туристи, ако искате да видите скритото съдържание на този пост, моляОтговор

Резултат

Брой участници2MB+1 допринасям+2 Срив причина
CONNTFS + 1 Много мощно!
Малък начинаещ, който обича да учи + 1 + 1 Подкрепете собственика да публикува добър пост, а аз също ще публикувам добър пост!

Вижте всички оценки





Предишен:Излизат доклади за новодошли в международната практика
Следващ:.net/c# Следващо поколение CAPTCHA Recognition System 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