ПредишенСледващото

Три функции са предназначени за извличане на HTML-документа само съответната информация. Windows системните администратори трябва да се справят с периодично извличане на конкретна информация от HTML документите. Такъв документ може да бъде локален файл, състоянието на страницата на устройството, свързано към локалната мрежа на базата данни за отчитане на разположение в интернет, или който и да е на хиляди видове страници. Във всеки от тези случаи, ние обикновено са изправени пред два проблема за ползване на данни. Първият от тях е да се свържете с желаната уеб-страница и четене на данните, съдържащи се в него.

АРУБА НЕЗАБАВЕН WI-FI: прост, мощен и достъпни

Три функции са предназначени за извличане на информация за HTML-само документ, необходим

Windows системните администратори трябва да се справят с периодично извличане на конкретна информация от HTML документите. Такъв документ може да бъде локален файл, състоянието на страницата на устройството, свързано към локалната мрежа на базата данни за отчитане на разположение в интернет, или който и да е на хиляди видове страници. Във всеки от тези случаи, ние обикновено са изправени пред два проблема за ползване на данни. Първият от тях е да се свържете с желаната уеб-страница и четене на данните, съдържащи се в него. Факт е, че ако една страница не е статичен файл, достъпен през всички Windows споделени ресурси или на файловата система в нашата мрежа, ние не може да чете съдържанието му с помощта на стандартни инструменти, като, например, Scripting.FileSystemObject обект. Освен това, за да получите достъп до устройството, обслужва интересите на уеб-страница, може да се наложи да определите подходящата потребителско име и парола. В този случай, след решението на този проблем сме изправени пред още по-голямо предизвикателство: как да се извлече необходимата информация от почти "суров" (сурови) HTML?

Извличане на данни

Работа с XMLHTTP запитване е разделен на три етапа: установяване на връзка, изпращане на заявката и получаване на отговор. За този отвор компонент връзка включва и подробно описание на неговите параметри. Пълният синтаксис метод обект Призив отворен Microsoft.XMLHTTP както следва (по избор аргументи са дадени в скоби):

Тук метод - низ аргумент, който описва вида на заявката екзекутиран. В случай на HTTP-връзки обикновено има стойност на "да". Адреса довод също е параметър низ, в който, в случай на достъп до отдалечени данни трябва да бъдат напълно определя от правилния URL адрес на път. Когато се работи с локални файлове, този аргумент се използва също, но в този случай това е пълния път до файла, който трябва да се работи (с файла префикс: // в описанието на начина, по който да се използва, не е необходимо).

Предлаганата като опция аргумент е асинхронен да покаже на заявителя, ако той трябва да чака за отговор (синхронен режим, тя отговаря на стойност на False) или да преминете към следващия ред код веднага след изпращане на заявката (асинхронен режим - Вярно стойност). Ако този аргумент е пропуснат, по подразбиране се приема, че е, но в този пример, е недопустимо, тъй като след изпращане на заявката е необходимо да се скрипт изчака отговора, защото в сценария, веднага след изпращане на искането, при обработването на резултатите. Така че, в този случай той трябва да бъде настроен на False.

Следващите два аргументи ще бъдат полезни в случай на обжалване на ресурсите, с ограничен достъп, но здраво ги питат в сценарии с повишено внимание. Ако достъпът до ресурс трябва да се посочи потребителско име и парола, те могат да бъдат определени, съответно, като потребител и да премине аргументи. избягване на грешки, удостоверяване, когато стартирате заявката. Но ако за достъп до ресурса на интереси удостоверяване не се изисква, а след това тези аргументи не е необходимо да питам, или можете да зададете празен низ - или чрез vbNullString, или чрез символа на двойни кавички ( ""). Сега имаме цялата необходима информация, за да се установи връзка, а ние да добавите следния ред в скрипта:

По този начин, ние сме конфигурирани и инсталирани на връзката, но по искане все още не е направено. За да направите това, използвайте метод за изпращане:

След приключване на искането е адресирано до получените данни, които се използват за responseText собственост на разпитващия:

Сега цялата цялата страница станат достъпни като данни за нашия сценарий. Аз трябва да кажа, че всичките ми обяснения са доста дълги, но много код, който изпълнява процедурата, се състои от само четири линии. И в края на статията кодът ще бъде интегриран в функцията, след което ще стане ясно и как можете да го наричат ​​с един ред.

Очевидно е, че искането на получената данни за ефективността представи значително ниво на "шум", съответно, да се извлече информация от интерес за нас, този шум, трябва да бъдат филтрирани. С други думи, ние имаме повече от 200 реда текст и около 1250 думи, а в цялата тази маса е необходимо да се намери само словото, което ни интересува.

филтриране шум

Би било хубаво да има механизъм за бърз преглед на шума. По принцип, HTML тагове и XML могат да бъдат филтрирани от сваляне на данни от обекта XmlDocument или HtmlDocument, а след това се представят заявка, която се връща само текста на документа. Въпреки това, ако данните не се изцяло да отговаря на изискванията на обекта, който се използва, това може да доведе до проблеми.

Като цяло, по мое мнение, този подход е по-голям риск, отколкото ползи, и ето защо. XmlDocument обект може да работи с нашия рутер конфигурация страница, но ако това няма да е напълно валиден формат XML документ, обработката се провали. Що се отнася до HtmlDocument обект, а след това, по принцип, тя осигурява отлична филтриране на нежелано съдържание, но това е свързано с значителни рискове, тъй като работата на нашия скрипт ще бъде прекратено. Ако страницата съдържа неправилна информация - и това може да е съдържание, което се обработва без грешка в IE - в този случай HtmlDocument обект може да генерира прозорец за грешка, блокиране интерфейс. И самата сценария обаче може да продължи да работи в тази страница с виртуална документ, който ще доведе до нестабилна работа.

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

Първата стъпка в процеса на разпределяне на целевата информацията се изважда от общата сума на данни за всички HTML тагове. Тъй като HTML тагове и XML винаги започват и завършват с ъглови скоби (<>), Те могат лесно да бъдат идентифицирани с помощта на следния шаблон (образец):

Тези, които имат опит с регулярни изрази, които вече са осъзнали, че този модел определя низове за търсене, които започват с "." Въпреки това, много хора може да обърка страна на експресия, съдържащи се в ъглови скоби (т.е. [>] +). Когато се използва в изразяването на точката на вмъкване (^), сключен между набора от символи, знаци ([) и (]), установени от нея, за да се идентифицират мачове всеки символ не в комплекта. Знакът плюс (+), е по-добре запознати с тези, които използват регулярни изрази; това означава, че идентифицирането на мачове с последователност на една или повече знака от комплекта. Следователно, изразът [^>] + се отнася до идентифицирането съвпада с всеки символ, с изключение на характера>. Следователно, пълно описание на шаблона] +> определя се идентифицират всички последователности, които започват с характер. но не съдържат символа>.

След Идентифицирани са всички маркери, остава само да ги изтриете. За да направите това, ние използваме регулярен израз в замести режим, заменяйки тагове празни редове:

Ако се вгледате в стандартен уеб-страницата, след изпълнението на това действие, ние се отбележи, че продължава да има значително количество данни, както и повечето от тях са празни, т.е. комбинация от ушенца, интервали и стандартни линия терминатори. Също така, има специални знаци и HTML. Въпреки че в уеб-базирана конфигурация страница на присъствието им на пример рутера не е от съществено значение, обаче, че има смисъл да изчисти страница от един от тези символи, тъй като това ще улесни последващия процес на търсене: това е специален символ непрекъсваем интервал, обикновено е посочено на Web-страници като "". В този случай, за да замени този символ отново да се възползвате от регулярния израз, но това е по-лесно да се използват символи заместват функцията на VBScript. Използвайте следните команди, като всеки един от тези специални символи ще бъде заменен от интервал характер:

Последната стъпка е процедурата, общо почистване е да се превърне всички намерени в нашия празен поредица от знаци в един интервал символи данни. Това е да се гарантира, че процесът на низа за търсене, не е необходимо да се определи колко непечетаемите знака (и какъв тип) се отделят една дума от друг. За да се превърне един единствен невалидни интервали знаци задават нов образец за регулярен израз, можете да търсите за мачове до една или повече празни символ на всякакъв вид:

След това, на мястото на всеки един от мачовете намерени, символ на един интервал:

съответна информация

Повечето от оставащата работа, е специфичен за всеки конкретен уеб-страници, от които да извличат информация, но в повечето случаи може да се извърши с помощта на два или три реда код. Повечето задачи за наблюдение и управление на мрежата по същество се свеждат до повторете процедурата на достъп до няколко страници, толкова малко време е необходимо да се създаде софтуерен инструмент за извличане на правилната информация бързо и в бъдеще ще се оправдае.

и го поставете в ляво от стойността на 256.261.381.125.

Тези функции ще опрости процеса на адаптация на сценария за конкретни задачи. По-специално, ако имате опит в добива на желания материал от страниците с помощта на регулярни изрази и предпочитат да го правят във всеки обичаен начин, а след това можете да използвате само функцията GetWebXml за извличане на данни и след това да ги обработи по желание. Ако предпочитате да използвате готови решения, но има някои специфични изисквания (например, трябва да бъдат отстранени не една, а няколко реда), като в този случай можете да използвате функцията и игнорира функция CleanTaggedText GetSubString. И накрая, ако всичко на страницата е само един ред е необходимо да се извлече и получаване на съответното уникален текст, преди действителната стойност и след това, тогава можете да използвате всички функции на три - колкото и аз.

Обява 1. скрипт за извличане на информация от уеб-страница.

Сподели снимки с приятели и колеги

Свързани статии

Подкрепете проекта - споделете линка, благодаря!