Парсим данные сайта целиком и бесплатно

Парсим данные с сайтов при помощи XPath и Screaming Frog без помощи программистов. Синтаксис XPath для выбора, ссылка на удобное расширение для извлечения пути, примеры для парсинга любых данных + запись моего мастер-класса в гостях у Михаила Шакина.

Парсим данные сайта целиком и бесплатно
Парсим данные сайта целиком и бесплатно

Приветствую. Меня зовут Толстенко Александр. Я SEO-специалист, маркетолог с опытом продвижения: Медицинских клиник, b2b и b2c клиентов, оптовиков, производителей, сайтов услуг и интернет-магазинов.

При помощи SEO-оптимизации сайта и платной рекламы, помогаю своим клиентам вывести сайт на первые позиции в Яндекс/Google и увеличить поток клиентов до 10 раз за месяц.

📍 Провожу 10 бесплатных консультаций в месяц. Если актуально, пишите в личку и бронируйте место https://t.me/tolstenkoaa.

XPath - Что это такое

Парсим данные сайта целиком и бесплатно

XPath (XML Path Language) - это язык запросов, используемый для навигации и поиска информации в XML-документах. Он позволяет точно указать путь к элементам, атрибутам и текстовым данным, которые нужно найти в структуре XML файлов и получить данные при необходимости.

XPath предлагает набор выражений, операторов и функций для указания конкретных путей обхода XML-деревьев и фильтрации данных с помощью различных критериев. Эти выражения состоят из элементов и операторов, которые можно комбинировать, чтобы получить нужные результаты.

Для чего нужен XPath

XPath используется для навигации и выбора элементов XML-документов. Он позволяет находить пути к элементам и их атрибутам, а также выполнять операции с ними: поиск, фильтрация, выборка.

Вот некоторые основные случаи использования XPath:

1.) Поиск элементов: XPath позволяет найти определенные элементы в XML-документе с помощью путей и фильтров. Например, можно найти все элементы определенного типа или имеющие определенное значение атрибута.

2.) Извлечение данных: XPath позволяет извлекать конкретные значения из XML-документа. Например, можно получить содержимое элемента или значение его атрибута.

3.) Проверка условий: XPath позволяет задавать условия и проверять их в XML-документе. Например, можно проверить, что значение атрибута соответствует определенному критерию или что в XML-документе есть определенный элемент.

4.) Навигация по структуре: XPath позволяет перемещаться по структуре XML-документа, находить конкретные узлы и выполнять с ними операции. Например, можно перейти к родительскому или дочернему элементу, выбрать первый или последний элемент, перейти на следующий или предыдущий элемент, а также совершать другие действия для исследования структуры XML-документа.

Использование XPath позволяет эффективно и удобно работать с XML-данными, особенно при обработке и анализе больших объемов информации.

Кому и зачем нужен Xpath

Если коротко — XPath нужен всем, кто работает с XML.

XPath широко используется в различных областях: программирование, веб-скрапинг, автоматизацию тестирования и анализ данных. Язык запросов позволяет легко и эффективно обращаться к нужным элементам в структурированных документах XML к нужным элементам, совершать какие то операции или получить необходимые данные.

Это лишь часть сценариев, в когда язык XPath может помочь — на самом деле, сценариев может быть намного больше.

Синтаксис XPath

Парсим данные сайта целиком и бесплатно

Для выбора узлов в XML документе с помощью XPath используются выражения путей. Выборка узла производится следуя по заданному пути или по, так называемым, шагам.

Синтаксис XPath описывает правила для создания выражений, которые позволяют точно указать, какие элементы и атрибуты должны быть выбраны из XML-структуры. Точно указать, какой элемент выбрать нужно с помощью XPath можно при помощи:

1.) Выбора узлов

2.) Пути выбора элементов

3.) Оси направления выбора

4.) Функций

5.) Предикатов

Выбор узлов

Парсим данные сайта целиком и бесплатно

Чтобы выбрать нужный узел в XML документе, нужно обратиться к нему при помощи языка запросов XPath, указав путь к нужному элементу. Узел выбирается следуя по заданному пути.

Базовый синтаксис XPath для парсинга элементов:

1.) * — Выбрать любой элемент.

2.) [] — Найти конкретный элемент. Пример: //li[1]

имя_узла — Выбирает все узлы с указанным именем узла. Пример: div, p и т.д.

3.) / — Ищет от корневого узла html

4.) // — Ищет узлы в документе от текущего узла, который соответствует выбору, независимо от того, где они находятся

5.) . — Ищет текущий узел

6.) .. — Ищет родителя текущего узла

7.) @ — Ищет нужный атрибут. Пример: //p[@value="2008"]

Абсолютные и относительные пути обращения к элементам

Парсим данные сайта целиком и бесплатно

К конкретному элементу можно обратиться двумя способами:

1.) Абсолютным. Абсолютный xpath начинается со слеша ( / ) и указывает на полный путь от корневого узла до целевого узла.

Пример выражения в XPath: /html/body/div[1]/h1

Конструкция означает: "выбрать первый элемент div, который находится по пути html > body > div и затем выбрать его дочерний элемент h1".

2.) Относительным. Относительный путь начинается с двух слешей (//) и указывает на путь от любого узла, который соответствует определенным критериям, до целевого узла. Пример: //div[@id='main']

Конструкция означает: "выбрать любой элемент div, который имеет атрибут id со значением 'main'".

Общие функции XPath

Язык XPath имеет набор встроенных функций, которые позволяют осуществлять различные операции с XML-документами. Вот некоторые из основных функций XPath:

1.) text() - возвращает текстовое содержимое элемента.

2.) count() - возвращает количество элементов, соответствующих указанному выражению.

3.) normalize-space() - удаляет лишние пробелы из строки и заменяет последовательности пробелов на одиночные пробелы.

4.) starts-with(x,y) - проверяет, начинается ли строка с x-y.

5.) contains(x,y) - проверяет, содержит ли строка x-y.

6.) last() - возвращает последнюю позицию элемента в выборке.

7.) position() - возвращает позицию текущего элемента в выборке.

8.) name() - возвращает имя текущего элемента.

9.) sum() - суммирует значения элементов выборки.

10.) string() - преобразует узел в строку.

11.) lower-case() - преобразует текст в нижний регистр.

12.) @attribute - выбирает значение указанного атрибута.

13.) concat() - объединяет две или более строки.

14.) string-length() - возвращает длину строки.

15.) substring() - возвращает подстроку из строки, начиная с указанной позиции.

Кроме этих основных функций, XPath также предоставляет более сложные функции, такие как функции математических операций (например, floor(), round(), sum()), функции работы с датами и временем и другие.

Оси XPath

Ось в XPath - это специальная концепция, которая используется для указания направления движения при поиске элементов в документе. Оси позволяют выбирать элементы, которые относятся к определенным отношениям с другими элементами в дереве XML или HTML.

В XPath есть несколько осей, которые можно использовать при создании выражений:

1.) child::note — Выбирает все узлы note, которые являются прямыми потомками текущего узла

2.) attribute::date — Выбирает атрибут date текущего узла

3.) child::* — Выбирает всех прямых потомков текущего узла

4.) attribute::* — Выбирает все атрибуты текущего узла

5.) child::text() — Выбирает все текстовые узлы текущего узла

6.) child::node() — Выбирает всех прямых потомков текущего узла

7.) descendant::note — Выбирает всех потомков note текущего узла

8.) ancestor::note — Выбирает всех предков note текущего узла

9.) ancestor-or-self::note — Выбирает всех предков note текущего узла, а также сам текущий узел, если это узел note

10.) child::*/child::heading — Выбирает всех прямых потомков прямых потомков (“внуков") heading текущего узла

11.) last() — Выделяет последний элемент в дереве.

Предикаты (Коллекции)

Предикаты — конструкции, которые используются для фильтрации элементов и выбора конкретных элементов с помощью определенных условий.

Вот несколько примеров использования предикатов в XPath для :

1.) //a — Выберите все элементы в документе

2.)//a[@class='active'] — Выберите все элементы, у которых атрибут class равен "active"

3.) //input[@type='checkbox'] — Выберите все элементы input, у которых атрибут type равен "checkbox"

4.) //input[@type='text'] — Выберите все элементы input с атрибутом type равным "text"

5.) //p[contains(text(), 'Lorem')] — Выберите все элементы

, у которых текст содержит слово "Lorem"

6.) //div[count(p) > 3] — Выберите все элементы

, у которых количество дочерних элементов

больше 3

7.) //a[starts-with(@href, 'https://')] — Выберите все элементы, у которых атрибут href начинается с "https://"

8.) //input[matches(@value, '^\d+

)] — Выберите все элементы input, у которых атрибут value содержит только цифры

9.) //p[@value="01/2008"] — Выбирает все элементы p, у которых есть атрибут value со значением "01/2008"

10.) //p[@value] — Выбирает все элементы p, у которых есть атрибут value

11.) //p/text() — Выделит все текстовые узлы внутри всех элементов p

12.) //div[not(p)] — Выберите все элементы

, у которых не существует дочернего элемента

13.) /div/p[position()<3] — Выбирает первые два элемента p, которые являются прямыми потомками элемента div

14.) //tag[position()=1] — Выбирает первый элемент с тегом "tag"

15.) /div/ul/li[1] — Выбирает первый элемент li, который является прямым потомком элемента ul в div

16.) //li[a] — Выделяет элементы li, в которых есть элемент a

17.) //li[last()] — Выделяет последний элемент li в документе

18.) //a | //h2 - Выделить все элементы a и h2 с помощью оператора объединения |

19.) //tag[@value > 9] — Получить узлы tag, value которых больше 9-ти.

20.) //div[note[@value > 9]]/а — Получить только имена узлов, value которых больше 9-ти

21.) //div[4]/h2[text() = "Текст"] — Выделит четвертый элемент div, h2 которого содержит слово: Текст

22.) /div/note[last()] — Выбирает последний элемент note, который является прямым потомком элемента div

23.) /div/note[last()-1] — Выбирает предпоследний элемент note, который является прямым потомком элемента div

24.) //*[@id] — Выберите все элементы с атрибутом id

25.) //div[contains(@class, 'content')]/p — Выберите все элементы, которые являются дочерними элементами

с классом "content"

26.) //img[contains(@src, 'logo')] — Выберите все элементы , у которых атрибут src содержит слово "logo"

27.) //*[@href[contains(text(), '.pdf')]] — Выберите все элементы со значением атрибута href, оканчивающимся на .pdf

28.) //*[@data-toggle='modal'] — Выберите все элементы с атрибутом data-toggle и значением "modal"

29.) //tag[@attribute>5] — Выбирает все элементы с тегом "tag" и атрибутом "attribute", значение которого больше 5

30.) //tag[@attribute="value"] — Выбирает все элементы с тегом "tag" и атрибутом "attribute" со значением "value"

Это лишь некоторые примеры запросов для получения данных. Существует много других комбинаций формирования запросов XPath.

Какие данные можно извлечь с сайта при помощи XPath и парсера

Парсим данные сайта целиком и бесплатно

XPath и парсеры могут извлекать различные данные с веб-сайтов. Вот несколько типов данных, которые можно получить при помощи этих инструментов:

  • Количество товаров в категориях;
  • Описание, характеристики и цену товара;
  • Изображения;
  • Наличие и количество отзывов;
  • Количество просмотров статей;
  • Количество лайков у статей;
  • Почтовые ящики;
  • Хлебные крошки;
  • Страницы с видео;
  • Какие страницы, имеют сколько отзывов;
  • На каких страницах размещен определенный текстовый блок или нет;
  • Даты публикаций статей или товаров;
  • Рейтинги товаров или статей.

Это лишь некоторые примеры того, что можно извлечь с помощью XPath. Фактически, вы можете извлекать любые данные или атрибуты, доступные на веб-странице в зависимости от ее структуры и организации информации.

Формулы по извлечению HTML атрибутов которые будут полезны СЕОшникам

1.) //@href — Извлечь все ссылки

2.) //a[starts-with(@href,'mailto')]/@href — Получить ссылки, которые содержат “mailto” (email адрес)

3.) //a[contains(@href,'tel:')]/@href — Получить все телефоны

4.) //img/@src — Получить все URL адреса картинок

5.) //img[contains(@class,'name-class')]/@src — Получить все URL адреса источников изображений с именем класса

6.) //div[@class='class'] — Получить элементы в тегах

с определенным классом, указанным в кавычках

7.) count(//h2) — Посчитать количество элементов на странице

8.) //*[@itemtype]/@itemtype — Извелчь какие типы микроразметок есть на странице

9.) //*[@itemprop='price']/@content — Узнать значение поля свойства разметки

10.) //iframe[contains(@src,'https://www.youtube.com/')]/@src — Найти ссылки на все видео с ютуба

11.) //table[@class='product-table']//td/text() — Извлечь текст всех ячеек таблицы с классом "product-table"

12.) //td[contains(text(),'Weight')]/following-sibling::td — Извлечение данных из ячеек таблиц

13.) contains(//meta[@name='description']/@content, 'таргетированное-ключевое-слово') — Проверяет наличие ключевого слова в мета теге

14.) //link[@rel=’amphtml’]/@href — Получить URL-адрес AMP

15.) //form[*]/input[@type='text']/@name — Имена всех текстовых полей внутри форм

Это далеко не весь список, чего можно достать с сайта конкурента. Более того, в конкретном случае, синтаксис будет разный. Составить формулу можно при помощи расширения XPath Helper или нажав правой кнопкой на html элементе и выбрать скопировать XPath

Парсим данные сайта целиком и бесплатно

Как извлечь данные при помощи XPath со страницы

Для извлечения данных со страниц, я использую расширение "XPath Helper".

1.) Установите XPath Helper для браузера Google Chrome https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl

2.) После установки, обновите страницу или откройте новую вкладку и перейдите на любую веб-страницу.

3.) Нажмите Ctrl-Shift-X (или Command-Shift-X в OS X) или нажмите кнопку XPath Helper на панели инструментов, чтобы открыть консоль XPath Helper.

Парсим данные сайта целиком и бесплатно

3.) Удерживая нажатой клавишу Shift, наведите указатель мыши на элементы на странице. Поле запроса будет постоянно обновляться, чтобы отображать запрос XPath для элемента под указателем мыши, а в окне результатов будут отображаться результаты для текущего запроса.

4. При желании отредактируйте XPath-запрос прямо в консоли. В окне результатов немедленно отразятся ваши изменения.

Парсим данные сайта целиком и бесплатно

5. Повторите шаг (3), чтобы закрыть консоль.

Если консоль вам мешает, удерживайте нажатой клавишу Shift, а затем наведите на нее указатель мыши; он переместится на противоположную сторону страницы.

Что можно сделать с помощью Screaming Frog SEO Spider

На этом все, спасибо за внимание.

Есть, чем поделиться или дополнить? Буду только рад! Пишите в комменты. Спасибо.

📍 ХОТИТЕ УВЕЛИЧИТЬ ЗАКАЗЫ В 2-5 РАЗ ЗА 30 ДНЕЙ

👇 Пишите в личные сообщения кодовое слово: "СайтТаксиVC"

☝ Уточню кое какие вопросы, определим дату и время созвона по видео связи.

📕 ЧТО ВЫ ПОЛУЧИТЕ ОТ КОНСУЛЬТАЦИИ?

1.) За 10-15 минут проведу БЕСПЛАТНУЮ диагностику вашего бизнеса и отвечу на все ваши вопросы.

2.) Определим нужный функционал сайта, составлю смету разработки, и продвижения сайта

3.) Расскажу, какие инструменты использовать для продвижения, чтобы создать стабильную систему привлечения клиентов.

Все это по записи в личных сообщениях.

☝ В месяц на продвижение беру не более пяти новых проектов. Количество бесплатных диагностик: 10 шт на месяц. Есть ли места, уточняйте в личных сообщениях.

----

Телеграм: https://t.me/tolstenkoaa

7
1
4 комментария
)] — Выберите все элементы input, у которых атрибут value содержит только цифры

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

9.) //p[@value=\"01/2008\"] — Выбирает все элементы p, у которых есть атрибут value со значением \"01/2008\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

10.) //p[@value] — Выбирает все элементы p, у которых есть атрибут value

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

11.) //p/text() — Выделит все текстовые узлы внутри всех элементов p

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

12.) //div[not(p)] — Выберите все элементы

, у которых не существует дочернего элемента

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

13.) /div/p[position()<3] — Выбирает первые два элемента p, которые являются прямыми потомками элемента div

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

14.) //tag[position()=1] — Выбирает первый элемент с тегом \"tag\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

15.) /div/ul/li[1] — Выбирает первый элемент li, который является прямым потомком элемента ul в div

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

16.) //li[a] — Выделяет элементы li, в которых есть элемент a

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

17.) //li[last()] — Выделяет последний элемент li в документе

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

18.) //a | //h2 - Выделить все элементы a и h2 с помощью оператора объединения |

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

19.) //tag[@value > 9] — Получить узлы tag, value которых больше 9-ти.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

20.) //div[note[@value > 9]]/а — Получить только имена узлов, value которых больше 9-ти

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

21.) //div[4]/h2[text() = \"Текст\"] — Выделит четвертый элемент div, h2 которого содержит слово: Текст

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

22.) /div/note[last()] — Выбирает последний элемент note, который является прямым потомком элемента div

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

23.) /div/note[last()-1] — Выбирает предпоследний элемент note, который является прямым потомком элемента div

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

24.) //*[@id] — Выберите все элементы с атрибутом id

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

25.) //div[contains(@class, 'content')]/p — Выберите все элементы, которые являются дочерними элементами

с классом \"content\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

26.) //img[contains(@src, 'logo')] — Выберите все элементы , у которых атрибут src содержит слово \"logo\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

27.) //*[@href[contains(text(), '.pdf')]] — Выберите все элементы со значением атрибута href, оканчивающимся на .pdf

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

28.) //*[@data-toggle='modal'] — Выберите все элементы с атрибутом data-toggle и значением \"modal\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

29.) //tag[@attribute>5] — Выбирает все элементы с тегом \"tag\" и атрибутом \"attribute\", значение которого больше 5

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

30.) //tag[@attribute=\"value\"] — Выбирает все элементы с тегом \"tag\" и атрибутом \"attribute\" со значением \"value\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Это лишь некоторые примеры запросов для получения данных. Существует много других комбинаций формирования запросов XPath.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Какие данные можно извлечь с сайта при помощи XPath и парсера"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"bc9574ff-5d63-5bf5-b2da-a1c1bc971727","width":1243,"height":460,"size":741246,"type":"png","color":"0b0c14","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABQcJ/8QAJBAAAgEDAwMFAAAAAAAAAAAAAQIDABESBAUxBhYhIlFSosH/xAAXAQEBAQEAAAAAAAAAAAAAAAAEAgMF/8QAIREBAAIABAcAAAAAAAAAAAAAAQACAxESURMhIjJBcaH/2gAMAwEAAhEDEQA/AM5d26bbcWhn1E0carGQsUEeOK3Nhkx8+3FaYteG6XmkgepIH2+vyP2/BRmztEaqnj7KFrlUxy3UemEEeODk1dTHDW+4KvcwlndWKqxABsADxQyptJzZ/9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

XPath и парсеры могут извлекать различные данные с веб-сайтов. Вот несколько типов данных, которые можно получить при помощи этих инструментов:

"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["Количество товаров в категориях;","Описание, характеристики и цену товара;","Изображения;","Наличие и количество отзывов;","Количество просмотров статей;","Количество лайков у статей;","Почтовые ящики;","Хлебные крошки;","Страницы с видео;","Какие страницы, имеют сколько отзывов;","На каких страницах размещен определенный текстовый блок или нет;","Даты публикаций статей или товаров;","Рейтинги товаров или статей."],"type":"UL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Это лишь некоторые примеры того, что можно извлечь с помощью XPath. Фактически, вы можете извлекать любые данные или атрибуты, доступные на веб-странице в зависимости от ее структуры и организации информации.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Формулы по извлечению HTML атрибутов которые будут полезны СЕОшникам"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

1.) //@href — Извлечь все ссылки

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

2.) //a[starts-with(@href,'mailto')]/@href — Получить ссылки, которые содержат “mailto” (email адрес)

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

3.) //a[contains(@href,'tel:')]/@href — Получить все телефоны

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

4.) //img/@src — Получить все URL адреса картинок

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

5.) //img[contains(@class,'name-class')]/@src — Получить все URL адреса источников изображений с именем класса

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

6.) //div[@class='class'] — Получить элементы в тегах

с определенным классом, указанным в кавычках

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

7.) count(//h2) — Посчитать количество элементов на странице

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

8.) //*[@itemtype]/@itemtype — Извелчь какие типы микроразметок есть на странице

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

9.) //*[@itemprop='price']/@content — Узнать значение поля свойства разметки

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

10.) //iframe[contains(@src,'https://www.youtube.com/')]/@src — Найти ссылки на все видео с ютуба

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

11.) //table[@class='product-table']//td/text() — Извлечь текст всех ячеек таблицы с классом \"product-table\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

12.) //td[contains(text(),'Weight')]/following-sibling::td — Извлечение данных из ячеек таблиц

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

13.) contains(//meta[@name='description']/@content, 'таргетированное-ключевое-слово') — Проверяет наличие ключевого слова в мета теге

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

14.) //link[@rel=’amphtml’]/@href — Получить URL-адрес AMP

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

15.) //form[*]/input[@type='text']/@name — Имена всех текстовых полей внутри форм

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Это далеко не весь список, чего можно достать с сайта конкурента. Более того, в конкретном случае, синтаксис будет разный. Составить формулу можно при помощи расширения XPath Helper или нажав правой кнопкой на html элементе и выбрать скопировать XPath

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"e0c991b8-adbc-5415-a43b-2d6bd4eafe27","width":707,"height":407,"size":45623,"type":"png","color":"e8edee","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABAMJ/8QAIxAAAgAFAgcAAAAAAAAAAAAAAQIAAwQRIQYSEzFSdJGx0v/EABgBAAIDAAAAAAAAAAAAAAAAAAIEAAED/8QAIBEAAgAEBwAAAAAAAAAAAAAAAAECAxESIjFRUpGx4f/aAAwDAQACEQMRAD8A03oZHCpqlKWVOZ1LMm+a5Ba5xck+opKmQbjvau6BhtV2zRrfuG+YmLQOyVufHo2TgkjnmGEkJxMpvfqPmDojOrP/2Q=="}}}]}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Как извлечь данные при помощи XPath со страницы"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Для извлечения данных со страниц, я использую расширение \"XPath Helper\".

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

1.) Установите XPath Helper для браузера Google Chrome https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

2.) После установки, обновите страницу или откройте новую вкладку и перейдите на любую веб-страницу.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

3.) Нажмите Ctrl-Shift-X (или Command-Shift-X в OS X) или нажмите кнопку XPath Helper на панели инструментов, чтобы открыть консоль XPath Helper.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"41884235-4414-597d-907b-ed1055aaaea9","width":270,"height":178,"size":17035,"type":"png","color":"efefee","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAABQn/xAAkEAABAwIFBQEAAAAAAAAAAAABAgMRAAQFBgcTIRUiQUJRsf/EABkBAAIDAQAAAAAAAAAAAAAAAAMFAAECBP/EACIRAAEDAgYDAAAAAAAAAAAAAAEAAgQDEQUSITGh0RNBcf/aAAwDAQACEQMRAD8Aoje6X5Mu8fTiK8FceumrcM9t44DtyFRG6PMcxXO+JSqP8rhrtue02jY7OiRhEovAZe9srTr9IJ5SDOn2VmGW2GstXIQ2kISDeuEgAQOS5JrYosHpBdikpxLi7hvSaBPWk8+g/KMUvGyVk/apRf/Z"}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

3.) Удерживая нажатой клавишу Shift, наведите указатель мыши на элементы на странице. Поле запроса будет постоянно обновляться, чтобы отображать запрос XPath для элемента под указателем мыши, а в окне результатов будут отображаться результаты для текущего запроса.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

4. При желании отредактируйте XPath-запрос прямо в консоли. В окне результатов немедленно отразятся ваши изменения.

"}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"","image":{"type":"image","data":{"uuid":"013f6543-d88e-5252-9d53-b1c23daea474","width":625,"height":169,"size":74229,"type":"png","color":"d3cfce","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAQQHCP/EACIQAQAABQIHAAAAAAAAAAAAAAEAAgMIEQUHEhUhMVVhov/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCNUr6rhKSsu8+lDnwlNFT3LANS33XB8JnfPSBx25BS6fEBkaZcQBgP/9k="}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

5. Повторите шаг (3), чтобы закрыть консоль.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Если консоль вам мешает, удерживайте нажатой клавишу Shift, а затем наведите на нее указатель мыши; он переместится на противоположную сторону страницы.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Что можно сделать с помощью Screaming Frog SEO Spider"}},{"type":"video","cover":false,"hidden":false,"anchor":"","data":{"title":"","video":{"type":"video","data":{"thumbnail":{"type":"image","data":{"uuid":"9a60a59a-0172-55b0-8532-b6154d2ff70b","width":1280,"height":720,"size":168641,"type":"jpg","color":"102b33","hash":"","external_service":[]}},"width":800,"height":450,"time":0,"external_service":{"name":"youtube","id":"91h9vEbFQa4"}}}}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

На этом все, спасибо за внимание.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Есть, чем поделиться или дополнить? Буду только рад! Пишите в комменты. Спасибо.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"📍 ХОТИТЕ УВЕЛИЧИТЬ ЗАКАЗЫ В 2-5 РАЗ ЗА 30 ДНЕЙ"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

👇 Пишите в личные сообщения кодовое слово: \"СайтТаксиVC\"

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

https://t.me/tolstenkoaa

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

☝ Уточню кое какие вопросы, определим дату и время созвона по видео связи.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"📕 ЧТО ВЫ ПОЛУЧИТЕ ОТ КОНСУЛЬТАЦИИ?"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

1.) За 10-15 минут проведу БЕСПЛАТНУЮ диагностику вашего бизнеса и отвечу на все ваши вопросы.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

2.) Определим нужный функционал сайта, составлю смету разработки, и продвижения сайта

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

3.) Расскажу, какие инструменты использовать для продвижения, чтобы создать стабильную систему привлечения клиентов.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Все это по записи в личных сообщениях.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

👉 https://t.me/tolstenkoaa

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

☝ В месяц на продвижение беру не более пяти новых проектов. Количество бесплатных диагностик: 10 шт на месяц. Есть ли места, уточняйте в личных сообщениях.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

----

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Телеграм: https://t.me/tolstenkoaa

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Telegram канал: Толстенко PRO Маркетинг

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

ВК: https://vk.com/tolstenkoaa

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Рутуб https://rutube.ru/channel/37807177/

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Ютуб https://www.youtube.com/channel/UCP9el99pUCTNIZwc0O_6FlQ/

"}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":4,"favorites":27,"reposts":0,"views":2650,"hits":3018,"reads":null,"online":0},"dateFavorite":0,"hitsCount":3018,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":false,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://vc.ru/seo/785565-parsim-dannye-saita-celikom-i-besplatno","author":{"id":184678,"name":"Александр Толстенко","nickname":null,"description":"🎯 tolstenko-marketing.ru 📈 Увеличу количество заказов в 2-5 раз и помогу дополнительно заработать от 500 000 рублей в месяц","uri":"","avatar":{"type":"image","data":{"uuid":"1e91bbf1-1756-529e-b2ac-609bf172a3f8","width":616,"height":569,"size":149416,"type":"png","color":"cdb992","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAACAMH/8QAJBAAAQMDAwQDAAAAAAAAAAAAAQIDBQQHEQAGIQkSE0EIMWH/xAAXAQADAQAAAAAAAAAAAAAAAAAEBgcI/8QAJBEAAQQABAcBAAAAAAAAAAAAAQACAxEEBhJBBRMhNDVxctH/2gAMAwEAAhEDEQA/AMFth8Ndx70snJboqXY+lmZRlFfDNPJWXSyjntyDgeUEAcHGRn74GmkEVyvdTWgk/qIjGpnLDbJIopIQHTltA3BRzc89IOyaaRlNatt8hCnwgeQpHoFWcaks2fMeZXGKtNmum2ybmZew4aNd3uo9P9556zMUHnVuBMlVIHconCQ4MDn1+apGY/E4j5KV+Gd5H7S91n1Udf/Z"}},"cover":{"cover":{"type":"image","data":{"uuid":"b595d2dd-b023-5425-9e86-d9d2fa9d0ce2","width":1585,"height":518,"size":377872,"type":"jpg","color":"dcc086","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAACQgK/8QAIRAAAQUAAgIDAQAAAAAAAAAAAgEDBAUGBxEAEgkVIRP/xAAWAQEBAQAAAAAAAAAAAAAAAAAGBwD/xAAkEQACAgICAQMFAAAAAAAAAAABAgMEAAURIQYHEkETMVFSsv/aAAwDAQACEQMRAD8Ay86/TcVu0YRF4M+gkOEEZbOi5BsEs5EwSMxbjpY5+xhMC82DoONlCMvUWjB1s0IXsTx2ftmxCcd8afFukyOV0U/kibmJ19m6O6mZqzKa7ZZ6XaVkWdIo7BxMUwjk6pefOBLNGGUN+O4SNN9+gxm76keTRXLcVHwjY36UdmeOnehlrtDdqpK617cR+vwY7EQSZD8q4ON4PGdU0MLWN9VrztFG09d0lDwTFAZIXHtHDROWRh+VOEDTvPfb1Bf1c7btIDja+5dgYymlEwXvsTFf1CHpUX9RfK/ZANewCAQYJQQewQY25BHyDguLqSPj90/oZZ/NW727nMnLTjmy1TjjnJm8Nxw9DbkZmWptSIzIpikRESqpEqqqqqqqqq+Sbx6lTTQaNEqVURNPrVVVrxKqqtKEKqqEACgAAAAAAcDrGuyllbY32aWQsbtokl2JJM8hJJJ5JJ7JPZOf/9k="}},"cover_y":100},"achievements":[{"title":"Год на vc.ru","code":"registration_1_year","description":"Первый год с vc.ru. Получена 24 июля 2025.","previewUuid":"0d11c244-49de-50e7-894e-b9b27945d42b","formats":{"glb":"https://static.vc.ru/achievements/fish.glb","usdz":"https://static.vc.ru/achievements/fish.usdz"},"viewData":{"contentColor":"#C67AA3","textMaxWidth":0.634765625,"textX":0.5888671875,"textY":0.54296875,"logoX":0.5859375,"logoY":0.6669921875,"logoXNoText":0.6044921875,"logoYNoText":0.5439453125},"id":5237458,"userId":184678,"count":0,"shareImage":"https://api.vc.ru/achievements/share/5237458"},{"title":"3 года на vc.ru","code":"registration_3_years","description":"Провёл 3 года вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"d9d72ac5-bcb5-55e0-8c72-b99251e5cdd9","formats":{"glb":"https://static.vc.ru/achievements/shark.glb","usdz":"https://static.vc.ru/achievements/shark.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.5205078125,"textY":0.341796875,"logoX":0.5205078125,"logoY":0.4609375,"logoXNoText":0.5,"logoYNoText":0.3662109375},"id":1613371,"userId":184678,"count":0,"shareImage":"https://api.vc.ru/achievements/share/1613371"},{"title":"5 лет на vc.ru","code":"registration_5_years","description":"Провёл 5 лет вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"a9140d54-73b8-5f40-afa8-449fbaafd42b","formats":{"glb":"https://static.vc.ru/achievements/whale.glb","usdz":"https://static.vc.ru/achievements/whale.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.533203125,"textY":0.658203125,"logoX":0.533203125,"logoY":0.77734375,"logoXNoText":0.4375,"logoYNoText":0.66015625},"id":386663,"userId":184678,"count":0,"shareImage":"https://api.vc.ru/achievements/share/386663"}],"lastModificationDate":1765119781,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":false,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":true,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":199127,"name":"SEO","description":"Поисковая оптимизация, кейсы, советы, разборы.","uri":"/seo","avatar":{"type":"image","data":{"uuid":"3388e642-b8bf-52eb-92cd-78d66b7af6df","width":1200,"height":1200,"size":12502,"type":"png","color":"fbebeb","hash":"081c0e0e0e1b0d0c","external_service":[]}},"cover":{"type":"image","data":{"uuid":"3d49d868-858d-5587-b4d4-ebc7a947c8ae","width":960,"height":280,"size":177,"type":"png","color":"84a494","hash":"","external_service":[]}},"lastModificationDate":1613380334,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"seo","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":7},{"id":2,"count":1}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null,"keywords":[],"media":{"type":"image","data":{"uuid":"36f56e3c-4b0a-5876-bfae-b2b80a1292fe","width":936,"height":437,"size":79492,"type":"png","color":"3688c8","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAgQGCP/EACQQAAICAQIGAwEAAAAAAAAAAAEDAgUEABEGEiEiMUEHFGGR/8QAGAEBAAMBAAAAAAAAAAAAAAAABQIDBAb/xAAnEQABAwIFAgcAAAAAAAAAAAABAgMEABEFEiExUTJhEyNBgbHh8P/aAAwDAQACEQMRAD8A3jX8Y39FVxxbRGXfIXlgKssVk+fJTsWOaIwB7IQI5fXWI369HJcViY7ma8vTp4OwF+Sd/eg4c+RAbyuDxNeq17jcm3AG1KWnydxVXWeZXrokOhjPYmLPtP7xGRAPj3tqDeFx1oCis6jtVjuOym1qSGkmxPp9VXVilI4dr0IXFa1OyVwhAbRhAOmBEAeAAANvzQ04ku3Pb4FdHgwAaUB+1NHyxPmI/msVMV//2Q=="}},"customCover":null,"robotsTag":"noindex","categories":[4],"isAnonymized":true}}; )] — Выберите все элементы input, у которых атрибут value содержит только цифры

9.) //p[@value="01/2008"] — Выбирает все элементы p, у которых есть атрибут value со значением "01/2008"

10.) //p[@value] — Выбирает все элементы p, у которых есть атрибут value

11.) //p/text() — Выделит все текстовые узлы внутри всех элементов p

12.) //div[not(p)] — Выберите все элементы

, у которых не существует дочернего элемента

13.) /div/p[position()<3] — Выбирает первые два элемента p, которые являются прямыми потомками элемента div

14.) //tag[position()=1] — Выбирает первый элемент с тегом "tag"

15.) /div/ul/li[1] — Выбирает первый элемент li, который является прямым потомком элемента ul в div

16.) //li[a] — Выделяет элементы li, в которых есть элемент a

17.) //li[last()] — Выделяет последний элемент li в документе

18.) //a | //h2 - Выделить все элементы a и h2 с помощью оператора объединения |

19.) //tag[@value > 9] — Получить узлы tag, value которых больше 9-ти.

20.) //div[note[@value > 9]]/а — Получить только имена узлов, value которых больше 9-ти

21.) //div[4]/h2[text() = "Текст"] — Выделит четвертый элемент div, h2 которого содержит слово: Текст

22.) /div/note[last()] — Выбирает последний элемент note, который является прямым потомком элемента div

23.) /div/note[last()-1] — Выбирает предпоследний элемент note, который является прямым потомком элемента div

24.) //*[@id] — Выберите все элементы с атрибутом id

25.) //div[contains(@class, 'content')]/p — Выберите все элементы, которые являются дочерними элементами

с классом "content"

26.) //img[contains(@src, 'logo')] — Выберите все элементы , у которых атрибут src содержит слово "logo"

27.) //*[@href[contains(text(), '.pdf')]] — Выберите все элементы со значением атрибута href, оканчивающимся на .pdf

28.) //*[@data-toggle='modal'] — Выберите все элементы с атрибутом data-toggle и значением "modal"

29.) //tag[@attribute>5] — Выбирает все элементы с тегом "tag" и атрибутом "attribute", значение которого больше 5

30.) //tag[@attribute="value"] — Выбирает все элементы с тегом "tag" и атрибутом "attribute" со значением "value"

Это лишь некоторые примеры запросов для получения данных. Существует много других комбинаций формирования запросов XPath.

Какие данные можно извлечь с сайта при помощи XPath и парсера

Парсим данные сайта целиком и бесплатно

XPath и парсеры могут извлекать различные данные с веб-сайтов. Вот несколько типов данных, которые можно получить при помощи этих инструментов:

Это лишь некоторые примеры того, что можно извлечь с помощью XPath. Фактически, вы можете извлекать любые данные или атрибуты, доступные на веб-странице в зависимости от ее структуры и организации информации.

Формулы по извлечению HTML атрибутов которые будут полезны СЕОшникам

1.) //@href — Извлечь все ссылки

2.) //a[starts-with(@href,'mailto')]/@href — Получить ссылки, которые содержат “mailto” (email адрес)

3.) //a[contains(@href,'tel:')]/@href — Получить все телефоны

4.) //img/@src — Получить все URL адреса картинок

5.) //img[contains(@class,'name-class')]/@src — Получить все URL адреса источников изображений с именем класса

6.) //div[@class='class'] — Получить элементы в тегах

с определенным классом, указанным в кавычках

7.) count(//h2) — Посчитать количество элементов на странице

8.) //*[@itemtype]/@itemtype — Извелчь какие типы микроразметок есть на странице

9.) //*[@itemprop='price']/@content — Узнать значение поля свойства разметки

10.) //iframe[contains(@src,'https://www.youtube.com/')]/@src — Найти ссылки на все видео с ютуба

11.) //table[@class='product-table']//td/text() — Извлечь текст всех ячеек таблицы с классом "product-table"

12.) //td[contains(text(),'Weight')]/following-sibling::td — Извлечение данных из ячеек таблиц

13.) contains(//meta[@name='description']/@content, 'таргетированное-ключевое-слово') — Проверяет наличие ключевого слова в мета теге

14.) //link[@rel=’amphtml’]/@href — Получить URL-адрес AMP

15.) //form[*]/input[@type='text']/@name — Имена всех текстовых полей внутри форм

Это далеко не весь список, чего можно достать с сайта конкурента. Более того, в конкретном случае, синтаксис будет разный. Составить формулу можно при помощи расширения XPath Helper или нажав правой кнопкой на html элементе и выбрать скопировать XPath

Парсим данные сайта целиком и бесплатно

Как извлечь данные при помощи XPath со страницы

Для извлечения данных со страниц, я использую расширение "XPath Helper".

1.) Установите XPath Helper для браузера Google Chrome https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl

2.) После установки, обновите страницу или откройте новую вкладку и перейдите на любую веб-страницу.

3.) Нажмите Ctrl-Shift-X (или Command-Shift-X в OS X) или нажмите кнопку XPath Helper на панели инструментов, чтобы открыть консоль XPath Helper.

Парсим данные сайта целиком и бесплатно

3.) Удерживая нажатой клавишу Shift, наведите указатель мыши на элементы на странице. Поле запроса будет постоянно обновляться, чтобы отображать запрос XPath для элемента под указателем мыши, а в окне результатов будут отображаться результаты для текущего запроса.

4. При желании отредактируйте XPath-запрос прямо в консоли. В окне результатов немедленно отразятся ваши изменения.

Парсим данные сайта целиком и бесплатно

5. Повторите шаг (3), чтобы закрыть консоль.

Если консоль вам мешает, удерживайте нажатой клавишу Shift, а затем наведите на нее указатель мыши; он переместится на противоположную сторону страницы.

Что можно сделать с помощью Screaming Frog SEO Spider

На этом все, спасибо за внимание.

Есть, чем поделиться или дополнить? Буду только рад! Пишите в комменты. Спасибо.

📍 ХОТИТЕ УВЕЛИЧИТЬ ЗАКАЗЫ В 2-5 РАЗ ЗА 30 ДНЕЙ

👇 Пишите в личные сообщения кодовое слово: "СайтТаксиVC"

☝ Уточню кое какие вопросы, определим дату и время созвона по видео связи.

📕 ЧТО ВЫ ПОЛУЧИТЕ ОТ КОНСУЛЬТАЦИИ?

1.) За 10-15 минут проведу БЕСПЛАТНУЮ диагностику вашего бизнеса и отвечу на все ваши вопросы.

2.) Определим нужный функционал сайта, составлю смету разработки, и продвижения сайта

3.) Расскажу, какие инструменты использовать для продвижения, чтобы создать стабильную систему привлечения клиентов.

Все это по записи в личных сообщениях.

☝ В месяц на продвижение беру не более пяти новых проектов. Количество бесплатных диагностик: 10 шт на месяц. Есть ли места, уточняйте в личных сообщениях.

----

Телеграм: https://t.me/tolstenkoaa

7
1
4 комментария