YQL — CDATA ]]> ошибка при выборе данных с использованием YQL

#web-scraping #yahoo #yql

#веб-очистка #yahoo #yql

Вопрос:

Попытка очистки данных из totalfilm.com использую YQL, но получаю странную ошибку:

«Последовательность символов «]]>» не должна отображаться в содержимом, если не используется для обозначения конца раздела CDATA».

 select * from html where url="www.totalfilm.com"
  

Ссылка

Комментарии:

1. У меня ваш запрос работает нормально, и ошибка не требует пояснений: на какой вопрос вы хотели бы получить ответ?

2. Извините, вопрос в том, как я могу очистить данные из totalfilm.com использование YQL?

3. Ага, теперь это выдает ту же ошибку, что и в вопросе. Если вы не хотите самостоятельно привести в порядок HTML (в YQL или где-либо еще) или получить Total Film для исправления этого, быстрого ответа может и не быть.

4. Сейчас я делаю это с помощью php и библиотеки синтаксического анализа html

Ответ №1:

Как указано, возможно, потребуется некоторая подправка, чтобы сломанный XHTML работал так, как вам хотелось бы.

Вот для вас быстрая, очень грубая таблица открытых данных, которая удаляет любые <![CDATA[ и ]]> из (X) HTML-страницы (а также приводит ее в html порядок), прежде чем применять необязательное выражение XPath, как в обычной, чтобы получить нужные вам данные. таблица.

Вы можете использовать это как:

 use "https://github.com/salathe/yql-tables/raw/examples/data/nocdata.xml" as html;
select * from html where url="www.totalfilm.com"