德国最高法院发布其所有裁决的RSS提要。不幸的是,这个RSS提要中的项目不是直接链接到决策的PDF,而是链接到PDF包含在iFrame中的网页。
网页都是以并行的方式构建的。例如,在一个随机的RSS提要项目的链接网页中,源代码中的相对链接将如下所示:
<iframe border='0' src='document.py?Gericht=bgh&Art=en&Datum=Aktuell&nr=66132&Frame=4&.pdf' width='744px' height='100%'>Leider kann Ihr Browser keine eingebetteten Frames darstellen. Klicken Sie <a href='document.py?Gericht=bgh&Art=en&Datum=Aktuell&nr=66132&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&艺术=en&Datum=Aktuell&nr=66132&帧=4&。pdf".
我的想法是使用Yahoo Pipes循环浏览RSS提要的所有项目,遵循项目的链接,查看网页的源代码并提取<iframe border='0' src='
和下一个'
之间的字符串,将绝对文件夹路径粘贴在相对结果前面,然后将其重新分配给项目的链接。我的可悲尝试就在这里。基本上,我不知道在XPath模块中输入什么。
我有个坏消息要告诉你。恐怕这是不可能的。
这种情况下的解决方案是创建两个管道:
-
低层管道:
- 接收URL输入,其值如下:http://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/document.py?Gericht=bgh&艺术=en&az=IX%20ZR%204/12&编号=66132
- 使用XPath获取页面模块获取URL
- 希望提取
iframe
属性,并作为结果返回
-
更高级别的管道:
- 使用获取源获取您的原始URL
- 循环遍历提要项,在每次迭代中使用提要项的URL字段调用低级管道,并将结果分配给一个属性
- 根据新分配的属性构造URL
这可能会奏效。除此之外,不幸的是,这个网站拒绝了雅虎管道:它在试图获取该页面时收到了一个"Forbidden 403"错误。
所以这是不能直接与雅虎管道工作。另一种选择是,如果你可以设置一个代理服务器,它可以中继请求,这样德国网站就不会知道它们来自雅虎管道。
顺便说一句,这和我不能基于IMDB(互联网电影数据库)创建自定义提要的原因是一样的。他们拒绝所有来自雅虎管道的请求。