2009-10-22 70 views
2

我有一个Yahoo管道从Google组采用Atom源,我想对消息的全文(运行各种正则表达式以提取数据)执行一些处理。我可以用一个url像这样获得来自谷歌的纯文本邮件的文本:在Yahoo管道中获取纯文本

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

但是,我无法得到它的雅虎管道内部作为一个字符串值。抓取页面会拒绝非HTML页面。使用HTML表格YQL似乎工作,并包装AP元素中的纯文本,其文本我可以提取这样的:

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

但是,如果消息文本包含HTML标记,YQL返回一个HTML子树,而不是一个字符串。有什么办法可以将它平面化回到它的HTML源代码中吗?

+0

您可以发布链接到管? – Victor 2009-10-23 10:03:44

回答

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' 

我已经创建了与谷歌集团和消息ID的管道作为输入证明:

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

+0

我尝试点击“Get as JSON”链接,并且帖子文本中缺少''标签。 – LaC 2011-05-30 19:54:29

+0

嗯。取数据似乎是删除元素。 [This pipe](http://pipes.yahoo.com/pipes/pipe.info?_id=0d78444a7ef1e414fc483151c5c0981b)显示了Fetch Data的结果与您在浏览器中输入url的方式不同,特别是当您缺少abbr时提及。 – 2011-05-30 20:31:47