2013-12-06 2 views
1

Верховный суд Германии публикует an RSS feed of all its decisions. К сожалению, элементы этого RSS-канала, а не ссылки на PDF-файлы решения напрямую, ссылаются на веб-страницу, в которой PDF-файл содержится в iFrame.Использование Yahoo Pipes для извлечения элемента из связанной страницы на странице RSS-канала, превращение результатов в RSS-канал

Веб-страницы структурированы параллельно. Например, в a random RSS feed item's linked web page, относительная ссылка в исходном коде будет выглядеть следующим образом:

<iframe border='0' src='document.py?Gericht=bgh&amp;Art=en&amp;Datum=Aktuell&amp;nr=66132&amp;Frame=4&.pdf' width='744px' height='100%'>Leider kann Ihr Browser keine eingebetteten Frames darstellen. Klicken Sie <a href='document.py?Gericht=bgh&amp;Art=en&amp;Datum=Aktuell&amp;nr=66132&amp;Frame=4&.pdf'>hier</a>, um das gewünschte Dokument zu erhalten.</iframe> 

Звенья все относительно папки

http://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/ 

Я хочу, чтобы преобразовать этот RSS-канал в RSS в котором ссылка каждого элемента является ссылкой непосредственно на PDF, поэтому в моем примере ссылка на элемент RSS-канала должна стать «http://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/document.py?Gericht=bgh&Art=en&Datum=Aktuell&nr=66132&Frame=4&.pdf».

Моя идея заключается в том, чтобы использовать Yahoo Pipes для перебора всех пунктов RSS корма, перейдите по ссылке элемента, посмотрите на исходный код веб-страницы и извлечь строку между <iframe border='0' src=' и следующей ', придерживаться абсолютного путь к папке перед относительным результатом и переназначить это на ссылку элемента. Моя грустная попытка сделать это найдена here. В принципе, я понятия не имею, что ввести в модуль XPath.

ответ

1

У меня плохие новости для вас. Боюсь, это будет невозможно.

Раствор в такой ситуации является создание два труб:

  1. Низкоуровневых трубы:

  2. Более высокий уровень трубы:

    • Fetch исходный URL с Fetch поток
    • петлю над элементами подачи, в каждом итерация, вызывающая низкоуровневый канал с использованием поля URL элемента фида и присвоение результата атрибуту
    • Построить URL-адрес из нового назначенного атрибута

И это, вероятно, сработает. Кроме того, к сожалению, этот сайт отклоняет Yahoo Pipes: он получает ошибку «Forbidden 403» при попытке получить эту страницу.

Так что это не может работать напрямую с Yahoo Pipes. Альтернативой является то, что вы можете настроить прокси-сервер, который может передавать запросы, чтобы немецкий сайт не мог знать, что они поступают из Yahoo Pipes.

Кстати, по этой же причине я не могу создавать собственные каналы на основе IMDB (базы данных интернет-фильмов). Они отказываются от всех запросов от Yahoo Pipes.

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

  • Нет связанных вопросов^_^