2009-10-22 69 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