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

Как правильно работать с парсером?

23.06.2014, 22:11. Показов 1098. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читаю данную статью...
http://habrahabr.ru/post/176635/

Все сделал... Предположим есть html код...
HTML5
1
2
3
4
5
<item>
<link>
.....
</link>
</item>
Перебрать массив удается, $html->find('item')...
А вот, чтобы перебрать содержимое или скажем как вытащить содержимое тега link... Вытащить все теги, найти и перебрать их в массиве...

$html->find('link') так неудается

Добавлено через 1 час 12 минут
HTML5
1
2
3
<title>
 
</title>
PHP
1
2
3
4
5
        foreach($html->find('title') as $element) { 
        
            echo $element. '<br>';
            
        }
Содержимое title удается вытащить, хоть и вместе с тегом...
А вот cсодержимое тега link, нет... Получаю следующее
HTML5
1
<body><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br><link><br></body>
Добавлено через 2 часа 11 минут
В линке присутствует ссылка https://site.ru/
Как достать данную ссылку, хелп. Кто нибудь сталкивался с данным вопросом?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.06.2014, 22:11
Ответы с готовыми решениями:

Как правильно работать с JSON?
Здравствуйте! Подскажите, как правильно обрабатывать JSON в PHP, чтобы избежать монструозных конструкций такого вида: $userName=...

> как правильно работать со статическими переменными
пишу сайт простой магазин, пишу класс шаблонизатора. каждый раз когда запрашивается любая страница из моего сайта, создается новый класс,...

Как правильно заставить пхп работать с жавой?
привет. Как правильно заставить пхп работать с жавой. ктонить использовал жава классы с пхп?

10
65 / 64 / 33
Регистрация: 25.02.2014
Сообщений: 229
23.06.2014, 22:20
Пример из официальной документации:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
// Create DOM from URL
$html = file_get_html('http://slashdot.org/');
 
// Find all article blocks
foreach($html->find('div.article') as $article) {
    $item['title']     = $article->find('div.title', 0)->plaintext;
    $item['intro']    = $article->find('div.intro', 0)->plaintext;
    $item['details'] = $article->find('div.details', 0)->plaintext;
    $articles[] = $item;
}
 
print_r($articles);
http://simplehtmldom.sourceforge.net/manual.htm
1
1 / 1 / 0
Регистрация: 13.06.2014
Сообщений: 192
23.06.2014, 22:25  [ТС]
В приведенном вами коде, что та не вижу решения...
ПРописываю без всякого цикла
echo $html->find('link', 0)->plaintext;
Результат =0, пустая страница... Содержит только тег body...
Из других тегов я вытаскиваю текст. Все ок... Но не могу вытащить содержимое тех тегов. В которых присутствует ссылка. В данном случаи у меня в теге "link" только ссылка...
0
368 / 406 / 165
Регистрация: 29.05.2014
Сообщений: 1,494
23.06.2014, 22:49
Лент читать мануал, но рискну предположить, что надо вместо
PHP
1
echo $html->find('link')
написать
PHP
1
print_r ($html->find('link'))
1
1 / 1 / 0
Регистрация: 13.06.2014
Сообщений: 192
24.06.2014, 13:03  [ТС]
Все это я уже пробовал, не работает... В общем бросил я эту страницу rss, с самой страницей сайта легче работать...
0
 Аватар для danilatorsu
5 / 5 / 2
Регистрация: 30.01.2014
Сообщений: 73
25.06.2014, 09:30
PHP
1
$html->find('item link')
0
1 / 1 / 0
Регистрация: 13.06.2014
Сообщений: 192
25.06.2014, 19:40  [ТС]
И так пробовал
Думаю, что не стоит создавать еще одну тему. Задам тут вопрос, а вопрос следующий...
Предположим есть текст, по следи данного текста находится '<div class="ff">ff</div>'.
Возможно ли взять все содержимое но только до данного тега, элемента?
Не удалять не нужные элементы, а сразу вытащить необходимое...
0
65 / 64 / 33
Регистрация: 25.02.2014
Сообщений: 229
25.06.2014, 20:10
Лучший ответ Сообщение было отмечено Форма как решение

Решение

Цитата Сообщение от Форма Посмотреть сообщение
Думаю, что не стоит создавать еще одну тему. Задам тут вопрос, а вопрос следующий...
Предположим есть текст, по следи данного текста находится '<div class="ff">ff</div>'.
Возможно ли взять все содержимое но только до данного тега, элемента?
Не удалять не нужные элементы, а сразу вытащить необходимое...
Конкретно поставленная задача может быть решена так:
PHP
1
explode('<div class="ff">',$string)
1
1 / 1 / 0
Регистрация: 13.06.2014
Сообщений: 192
25.06.2014, 22:32  [ТС]
Извиняюсь, что мои глупые вопросы не прекращаются...
PHP
1
2
3
4
5
6
7
8
        function my_callback($element) {
            if ($element->tag=='p')
                $element->outertext = '<p>1111111111111111111111111111111111111111111111111111111111</p>';
            
        } 
          
       $news_full->set_callback('my_callback');
echo $news_full;
Меняет каждую третью наверное... А точнее, меняет только те у которых посреди тега есть текст...
На странице присутствуют '<p><p>', но он их почему та пропускает... Собственно это первый вопрос...
Второй, в функцию передаем вес html код страницы. Хотелось, передать только содержимое определенного тега...
Так вот я вроде все перепробовал и классами , и innertext... Не получается, все время ошибка...
0
65 / 64 / 33
Регистрация: 25.02.2014
Сообщений: 229
26.06.2014, 08:06
Скорее всего, вы получаете не валидный html, а библиотека его некорректно обрабатывает.
0
1 / 1 / 0
Регистрация: 13.06.2014
Сообщений: 192
26.06.2014, 15:09  [ТС]
Я тут немного иначе сделал с циклом for...
Вот еще,что интересно. Быть может есть функция...
В общем есть веб страница, на ней новости. Далее необходимо собрать все имена новостей. Не собрать, а сразу вытащить и проверить. Прописать в условии, мол массив и поиск слова... То есть если данное слово присутствует в массиве, пропускаем в условие...
У меня сейчас сделано через цикл, дак тут каждое имя приходится проверять... Нельзя ли взять сразу готовый массив и проверить,прописать в условие?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.06.2014, 15:09
Помогаю со студенческими работами здесь

Функция array_diff, как правильно с ней работать? Дан массив, необходимо все его элементы уменьшить на 20
дан массив необходимо все его элементы 1) уменьшить на 20 (для начала хелп с этим) 2) умножить на последний элемент 3) увеличить на...

Проблема с парсером
В общем проблема в следующем. Есть сайт со списком тв программ. Парсить оттуда список не представляет сложности но список не совсем...

Ошибка с парсером
Здравствуйте форумчане. Возникла такая проблема. Нужно спарсить инфу с матчей ...

Проблема с парсером
Надо написать парсер на php, с яндексом работает нормально, но youtube.com, например не парсит. код: include 'curl_query.php'; ...

Никак не могу разобратся с парсером
Помогите никак не могу разобраться! Нужно вытянуть ссылку на видео, набросал парсер, все тянется вроде как надо но есть одна беда! Хэш в...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru