谷歌饲料api和抓取标签和属性

时间:2011-05-11 22:06:30

标签: javascript rss google-feed-api

var feedcontainer=document.getElementById("feeddiv")
var feedurl="http://example.com"
var feedlimit=5
var rssoutput="<b>Latest Slashdot News:</b><br /><ul>"

function rssfeedsetup(){
var feedpointer=new google.feeds.Feed(feedurl) //Google Feed API method
feedpointer.setNumEntries(feedlimit) //Google Feed API method
feedpointer.load(displayfeed) //Google Feed API method
}

function displayfeed(result){
if (!result.error){
var thefeeds=result.feed.entries
for (var i=0; i<thefeeds.length; i++)
rssoutput+="<li><a href='" + thefeeds[i].link + "'>" + thefeeds[i].title + "</a></li>"
rssoutput+="</ul>"
feedcontainer.innerHTML=rssoutput
}
else
alert("Error fetching feeds!")
}

window.onload=function(){
rssfeedsetup()
}

我从教程中抓取了这段代码,但它只抓取了Google文档中指定的项目,这些是链接和标题等基础知识。

在我的RSS Feed中,我有一个标记位于是否可以实现?

2 个答案:

答案 0 :(得分:5)

下面是一个从feed元素的enclosure元素中检索图像url的示例。 enclosure元素不包含在标准json格式中,因此要访问它,resultFormat必须设置为MIXED_MODE。除了json之外,结果条目现在还包括一个xmlNode,可以从中检索enclosure元素,并提取url:

var feed = new google.feeds.Feed(feedUrl);
feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
feed.load( function(result) {
   var entry = result.feed.entries[i];
   var entryImageUrl = entry.xmlNode.getElementsByTagName("enclosure")[0].getAttribute("url");
});

答案 1 :(得分:1)

我明白了。 您必须使用feed.setResultFormat(google.feeds.Feed.XML_FORMAT)设置Feed以恢复XML;

然后如果你想抓住你使用的任何东西

item.getElementsByTagName( '外壳')[0] .getAttribute( “URL”);