2009-10-22 2 views
2

У меня есть трубка Yahoo, принимающая канал Atom из группы Google, и я хочу сделать некоторую обработку в полном тексте сообщения (запуск различных регулярных выражений для извлечения данных). Я могу получить текст с сообщением, в виде обычного текста с от Google, используя URL, как это:Извлечение простого текста в Yahoo Pipes

http://groups.google.com/group/(group_name)/msg/(message_id)?dmode=source&output=gplain 

Однако, у меня проблемы при получении его в Yahoo Pipes как строковое значение. Извлечь страницу из страниц, отличных от HTML. YQL с помощью таблицы HTML, кажется, работает, и заворачивает простой текст внутри элемента AP, текст которой можно извлечь так:

select * from html where url="..." and xpath="//p" 

Однако, если текст сообщения содержит HTML-тег, YQL возвращает HTML поддерево вместо строка. Есть ли способ сгладить его обратно в свой HTML-источник?

+0

Вы можете разместить ссылку на трубе? – Victor

ответ

1

Трюк заключается в удалении «output = gplain» и захвате содержимого из элемента pre.

select content from html 
where url="http://groups.google.com/group/haml/msg/0f78eda2f5ef802d?dmode=source" 
and xpath='//div[contains(@class,"maincontbox")]/pre' 

Я создал трубу с группой Google и Message ID в качестве входных данных для демонстрации:

http://pipes.yahoo.com/pipes/pipe.info?_id=3d345e162405e7dbd47d73b95c21f102

+0

Я попытался нажать ссылку «Получить как JSON», а тег '' отсутствует в тексте сообщения. – LaC

+0

Хм. Извлечение данных - это удаление элементов. [Эта трубка] (http://pipes.yahoo.com/pipes/pipe.info?_id=0d78444a7ef1e414fc483151c5c0981b) показывает, как результат из Fetch Data отличается от ввода URL-адреса в вашем браузере, особенно abbr отсутствует, поскольку вы упоминается. –

Смежные вопросы