尝试学习如何使用yql execute解析页面。我想分别返回文本和图像。我还想改变所有图像的宽度。试图为此编写javascript但它无法正常工作。有人能指出我正确的方向吗?
<execute><![CDATA[ var q = y.query('select * from html where url=@url and xpath=@xpath',{url:url,xpath:xpath}); var myresults = q.results; var images = myresults.getElementsByTagName('img'); images.setAttribute('width','150'); text = myresults.getElementById("p").textContent; response.object = <text>{text}</text> <images>{images}</images>; ]]> </execute>
答案 0 :(得分:1)
实际上,只需使用内置于YQL中的 html 表,您就可以执行与您想要的非常相似的操作。这是一个我从这个article中选择img和p元素的例子。
我在一个Xpath中使用两个不同的XPath表达式:
//div[@id='left_col']//img
//div[@id='left_col']//p
完整查询:
SELECT * FROM html WHERE url="http://www.computerworld.com/s/article/9209140/Sentiment_analysis_comes_of_age" AND xpath="//div[@id='left_col']//img|//div[@id='left_col']//p"
尝试一下。