Домой WordPress WordPress: Вопросы и ответы Парсер контента с других сайтов
7ответ(ов) в теме
djjoid
не в сети 8 лет
На сайте с 15.09.2015
Участник
1
09:41

Привет всем. Интересует плагин который может парсить контент определенным образом. Сайт донор является интернет магазином (не на wordpress), в нем присутствуют поля характеристик (вес, размер, артикул, производитель и тд.), нужно что бы эти данные вставлялись с помощью парсера в подготовленные произвольные поля в wordpress. Заголовок и фото соответственно тоже. Есть ли такие плагины? Может кто подскажет как такое реализовать?

0
Вова (Otshelnik-Fm)
не в сети 45 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
14:25

Я не дам вам такую информацию - я против воровства контента. Какими бы вы другими словами это не называли.

p.s. тему открыл. Топикстартер в личку обосновал - они дилеры компании, которая разрешила им использовать материалы своего сайта.

От себя - попросите от них экселевский файл с списком товара и характеристиками. Плагины для импорта из офисных документов есть в репозитории вордпресс.

1
Андрей CS
не в сети 34 минуты
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
3
16:33

вряд ли такие плагины есть.
Парсеры обычно пишут под какой то конкретный сайт.
А реализация по своей сути довольно проста, получаете содержимое через функцию file_get_contents и парсите содержимое через регулярку, одновременно получаете ссылки на странице и заставляете скрипт по этим ссылкам опять получать содержимое страниц сайта и парсить их опять.
Самое сложное это правильные регулярки написать.

1
djjoid
не в сети 8 лет
На сайте с 15.09.2015
Участник
4
17:08

Спасибо за советы, буду пробовать

0
djjoid
не в сети 8 лет
На сайте с 15.09.2015
Участник
5
13:41

Добрый день. Ну вот я и встрял. Тема вроде как избитая в интернете, конечно может мне просто так показалось.
Страницу через file_get_contents получаю, таблица из которой мне нужно получить данные выглядит примерно так:

<table><tr><td><span class="">красно-коричневый</span></td></tr><tr><td><span class="">F50</span></td></tr></table>

"красно-коричневый" и "F50" мне нужно получить, пишу регулярное выражение:
preg_match_all("|<td><span.*?>(.*)</span>|si", $site, $matches);

через foreach пытаюсь вывести и ничего, пустота. Пусть регулярка не много не правильная, но фишка в том что когда просто пытаешься сравнить с переменной, то все работает. Сайт донор в UTF-8, я начитался что preg_match_all не совсем дружит с этой кодировкой. Подскажите, что не так

0
Андрей CS
не в сети 34 минуты
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
6
14:02

я не знаток регулярок, но можете попробовать такое

preg_match_all('/(?<=<td><span class="">)[A-zА-я0-9-s]*(?=</span></td>)/iu', $site, $matches);

0
djjoid
не в сети 8 лет
На сайте с 15.09.2015
Участник
7
14:42

Если так :

$site = '<table><tr><td><span class="">красно-коричневый</span></td></tr><tr><td><span class="">F50</span></td></tr></table>';

То все находит
А если так:
$site = file_get_contents('http://сайт.ру')

То пустота. Я целиком таблицу вставлял в переменную, скопированную сайта, все находит, с сайтом не хочет работать и все тут

0
Тема закрыта. Публикация новых сообщений запрещена.