/
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ тСкста страницы

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ тСкста страницы

ОглавлСниС


ОписаниС

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ инструмСнта Π’Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ (Source), DOM модСль ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ страницы.

Π’ Ρ‡Ρ‘ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ DOM ΠΈ исходным ΠΊΠΎΠ΄ΠΎΠΌ страницы Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ΅ Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Source ΠΈ DOM

Если Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π° Π΄Π²ΠΈΠΆΠΊΠ΅ Chrome, Ρ‚ΠΎ Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты web-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°


Для Ρ‡Π΅Π³ΠΎ это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ?

Π”Π°Π½Π½Ρ‹ΠΉ инструмСнт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ структуру страницы:


Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ?

Кнопка Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° находится ΠΏΡ€Π°Π²Π΅Π΅ адрСсной строки Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.


Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠΊΠ½ΠΎΠΌ?

ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΠΎ ΠΈΠΊΠΎΠ½ΠΊΠ΅ открываСтся ΠΎΠΊΠ½ΠΎ:

Π’Ρ‹Π±ΠΎΡ€ содСрТимого

Π’ΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ: DOM (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ), исходный ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ тСкст Π½Π° страницС (Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Source ΠΈ DOM).

ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎ словам

ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ Ссли строка слишком длинная, Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ пСрСнСсСна Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ , Π° Π½Π΅ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ ΠΎΠΊΠ½Π°. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠΊΠ½Π°, Π½ΠΎ с Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ:

Β 

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² конструктор рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

ΠŸΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ конструктор рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π° содСрТимоС ΠΎΠΊΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски Π² Π½Π΅Π³ΠΎ скопировано.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ тэги <meta> с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ propertyсо страницы Ρ‚Π΅ΠΌΡ‹ Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ ZennoLab. Π§Π΅Ρ€Π΅Π· конструктор дСйствий ΠΊ Π½ΠΈΠΌ Π½Π΅ ΠΏΠΎΠ΄Π±Π΅Ρ€Ρ‘ΡˆΡŒΡΡ, Ρ‚.ΠΊ. эти тэги Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹. Наши дСйствия:

  • ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ страницу

  • ЗапускаСм ΠΎΠΊΠ½ΠΎ просмотра ΠΊΠΎΠ΄Π° (ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π² этом случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ DOM Ρ‚Π°ΠΊ ΠΈ исходный ΠΊΠΎΠ΄, это Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ отразится Π½Π° ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅) ΠΈ смотрим Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ тэги (ΠΈΡ… нСсколько, Π½ΠΎ Ρ‚ΡƒΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½):

    Π£ всСх тэгов ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ структура: всСгда Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с <meta property=ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π°

    >Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, сразу послС property,Π½Π°Π·Π²Π°Π½ΠΈΠ΅ этого свойства, Π° Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ content - содСрТимоС.

  • ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ содСрТимоС Π² конструктор рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. На основС Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ шага создаём рСгулярку - (?<=<meta\ property=)"([a-z:]+)"\s+content="(.*?)"(?=>)

  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ экшСна ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСкста ΠΈ Π΅Π³ΠΎ дСйствия Regex достаём ΠΈΠ· ΠΊΠΎΠ΄Π° страницы Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ значСния ΠΈ сохраняСм Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

    Β 

НСбольшиС пояснСния ΠΊ ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρƒ:

  • {-Page.Dom-} - Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ хранится DOM Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. Для исходного ΠΊΠΎΠ΄Π° - это{-Page.Source-},для тСкста - {-Page.Text-}. Π’ ΠΎΠΊΠ½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹Π» ΠΈΡΠΊΠ»ΡŽΡ‡Ρ‘Π½ столбСц ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ноль? Π’ рСгулярном Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π±Ρ‹Π»Π° использована скобочная Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ( (?<=<meta\ property=)"([a-z:]+)"\s+content="(.*?)"(?=>) - Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ красным ). ΠŸΡ€ΠΈ тСстировании Π² конструкторС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ , пСрСйдя Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π“Ρ€ΡƒΠΏΠΏΡ‹, Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ нас ΠΈΡ… Π΄Π²Π΅: Π² самой ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ находится тСкст ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ совпадСния, Π° дальшС ΡƒΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹. А Ρ‚.ΠΊ. нумСрация начинаСтся с нуля, ΠΌΡ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ столбСц с Π½ΠΎΠΌΠ΅Ρ€ 0, Π° Π½Π΅ 1.


ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

Related content