我有一个Yahoo管道从Google组中获取Atom提要,我想对消息的全文进行一些处理(运行各种正则表达式来提取数据)。我可以使用这样的网址从Google获取纯文本的短信:
http://groups.google.com/group/(group_name)/msg/(message_id)?dmode=source&output=gplain
但是,我无法将其作为字符串值在Yahoo管道中获取。获取页面拒绝非HTML页面。使用html表的YQL似乎有效,并将纯文本包装在一个p元素中,我可以像这样提取其文本:
select * from html where url="..." and xpath="//p"
但是,如果消息文本包含html标记,则YQL将返回HTML子树而不是字符串。有没有办法将它展平回HTML源代码?
答案 0 :(得分: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 Group和Message ID作为输入的管道来演示:
http://pipes.yahoo.com/pipes/pipe.info?_id=3d345e162405e7dbd47d73b95c21f102