我正在嘗試使用YQL從一系列網頁中提取HTML的一部分。頁面本身的結構略有不同(所以Yahoo Pipes「Fetch Page」及其「剪切內容」功能不起作用),但我感興趣的片段始終具有相同的class
屬性。有沒有辦法讓YQL返回HTML?
如果我有一個HTML頁面是這樣的:
<html>
<body>
<div class="foo">
<p>Wolf</p>
<ul>
<li>Dog</li>
<li>Cat</li>
</ul>
</div>
</body>
</html>
,並使用YQL表達這樣的:
SELECT * FROM html
WHERE url="http://example.com/containing-the-fragment-above"
AND xpath="//div[@class='foo']"
什麼我回來是(顯然無序?)DOM元素,其中我想要的是HTML內容本身。我也試過SELECT content
,但那隻能選擇文字內容。我想要HTML。這可能嗎?
美麗!謝謝。我現在唯一的問題是如何將Yahoo Pipes變量放入YQL表達式中。例如, SELECT * FROM html.tostring其中 URL = item.link 和XPath = '// DIV [@ ID = 「富」]' 還給錯誤「無效identfier item.link。我是在這種情況下唯一支持的標識符。「任何想法,我怎麼做? (對不起,代碼片斷,看起來像註釋不允許格式化) – 2010-05-05 13:53:10
想出了這個答案:創建一個單獨的管道,它接受一個URL輸入,將它插入到一個字符串生成器中YQL查詢,並將其作爲查詢附加到YQL小部件。然後在你的主管道中,使用這個新管道並將URL作爲輸入傳遞給它。 我想我可能會爲此專門打開一個新問題,這樣人們就不必在這個問題的評論中追捕它。 – 2010-05-22 19:00:02
打開:http://stackoverflow.com/questions/2889406/how-do-i-pass-a-yahoo-pipes-item-into-a-yql-query – 2010-05-22 19:38:44