- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день всем!
Пытаюсь распарсить страницу, но не выходит никак один момент. Это будет мой только второй парсер , поэтому сильно не пинайте.
Проблема такая:
Есть на сайте доноре такой код:
<img src="/images/rus.gif" alt="" class="ina">
<img src="/images/eur.gif" alt="" class="ina">
<img src="/images/usa.gif" alt="" class="ina">
<img src="/images/jap.gif" alt="">
</span>
Всегда выводится эти 4 картинки. У некоторых из них есть class="ina". Он может быть или может не быть :) Нужно распарсить так:
Если у картинки rus.gif есть class="ina" то ..., если нету класса, то ...
и т.д с этими четырьмя картинками. Действия для всех этих картинок будут разными.
Даже ума не приложу как правильно это сделать. Пробовал через регулярку, как-то не выходит, всегда действие одно и то же выполнялось, может условие не правильно строил.
Спасибо за помощь!
П.С. Парсер на PHP + CURL.
вам написать полный код парсера?
вам написать полный код парсера?
Просто подсказать с помощью чего это можно сделать. Регулярку например подкиньте. Парсер писать не надо, сам напишу 😂
сначала через preg_match_all все картинки спарсите, а потом проверяйте через foreach:
if (preg_match('class'))
{}
else
{}
ну тогда покажите регулярку с которой у вас не получилось
LEOnidUKG, о Спасибо. Так в принципе и делал:
preg_match('/(rus.*class="ina">)/Uis', $result[0][$i], $rus);
Потом куда то понесло:
if (isset($rus[0]) and (strlen($rus[0])>0)) {} else {}
Получаете текст
$text =' bla bla bla
<span class="reg">
<img src="/images/rus.gif" alt="" class="ina">
<img src="/images/eur.gif" alt="" class="ina">
<img src="/images/usa.gif" alt="" class="ina">
<img src="/images/jap.gif" alt="">
</span>
bla bla bla
';
и парсите его регулярным выражением
if(preg_match_all('#img src="(.*\.gif)"(?U).*(?-U)(?:( class="ina")|)>#im', $text, $found)){
//здесь либо выводите результат (чтоб посмотреть что получилось)
print '<pre>';
print_r($found);
print '</pre>';
//либо циклом проходитесь по массиву $found, чтоб выполнить действия в зависимости от его содержимого
}
Приведенное регулярное выражение не годится на все случаи жизни (можно сделать его более универсальным), но из приведенного текста получает следующее:
Array
(
[0] => Array
(
[0] => img src="/images/rus.gif" alt="" class="ina">
[1] => img src="/images/eur.gif" alt="" class="ina">
[2] => img src="/images/usa.gif" alt="" class="ina">
[3] => img src="/images/jap.gif" alt="">
)
[1] => Array
(
[0] => /images/rus.gif
[1] => /images/eur.gif
[2] => /images/usa.gif
[3] => /images/jap.gif
)
[2] => Array
(
[0] => class="ina"
[1] => class="ina"
[2] => class="ina"
[3] =>
)
)