Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
1 / 1 / 1
Регистрация: 04.05.2014
Сообщений: 109

Парсер - xPath

30.03.2017, 23:56. Показов 4760. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Парсер достает h1, h2, h3 и p методом xPath->query. При этом парсятся не только нужные абзацы, но и ненужные. Как можно отсечь ненужные теги p? То есть регулярным выражением можно избавится от лишнего используя (?!лишнее), а в случае с xPath есть такое решение?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://php.net/manual/ru/class.domelement.php");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);
 
$domDocument = new DOMDocument();
@$domDocument->loadHTML($content);
 
$xPath = new DOMXPath($domDocument);
$pElements = $xPath->query('//h1|//h2|//h3|//p');
 
if ($pElements->length > 0) {
    foreach ($pElements as $pElement) {
        $result[] = $pElement->nodeValue."\n";
    }
}
 
 
file_put_contents("article.txt", $result);
http://sandbox.onlinephpfuncti... a4d0671a51
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2017, 23:56
Ответы с готовыми решениями:

XPath
Подскажите кто знает. Мне нужно выбрать с помощью XPath все tbody у которых есть data-event-treeid &lt;tbody id=&quot;event_111111&quot;...

Изменение кода с XPath на CSS
Здравствуйте! Для примера написал вот такой скрипт с использованием XPath: &lt;?php $html = file_get_contents('https://ya.ru'); ...

xpath парсер
Проблема следующая. Я имею html страничку, и парсю её wxHtmlParser(wxWidgets). Но вот для этого парсера отсутсвует надстройка для поддержки...

1
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
31.03.2017, 22:21
В квадратных скобках указывай условия фильтрации.
contains() - проверяет наличие искомой строки.
not() - отрицание.
PHP
1
$xPath->query('(//h1|//h2|//h3|//p)[not(contains(., "word"))]');
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2017, 22:21
Помогаю со студенческими работами здесь

Парсер по XPath
Здравствуйте. Можете подсказать библиотеки для C#, которые могут работать с XPath следующего вида:...

XPATH
имеется файл эксемель, нормальный ручной прописанный самим собой без тип аслеш дабл слеш хететепе и прочее. ситуация: пишу код чтен...

IDOMXML и XPath
есть XML, в нём есть элемент &lt;cool test='100.0000' /&gt; При попытке выбрать его посредствам selectsinglenode с выражением .... тра ля ля...

Selenium xpath
Здравствуйте. Нужно найти некоторые элементы на сайте и проверить их описание. Суть в том, что описаний несколько и мне нужно выбрать одно....

Xpath and lxml
есть xml такого формата: &lt;X&gt; &lt;A&gt; &lt;AB&gt;aaa&lt;AB&gt; &lt;AC&gt;bbb&lt;/AC&gt; &lt;/A&gt; &lt;A&gt; &lt;AC/&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru