你需要另一个循环来遍历每个鸣叫的所有链接,使用getAttribute方法来获取每一个环节(HREF)的目的地:
for (var i = 0; i < 1; i++) {
tweet[i] = document.getElementsByClassName("js-tweet-text")[i];
var links = tweet[i].getElementsByTagName("a");
for (var j = 0; j < links.length; j++) {
var linkURL = links[j].getAttribute("href");
//do something with linkURL here
}
}
注意:您不需要使用的innerHTML属性为你,因为这将处理的tweet作为一个字符串,而不是JS对象
编辑:我不太清楚你“,而不是嵌入的照片网格上是什么意思Twitter个人资料的左侧? ',但我认为这应该做你想做的...
它会通过时间轴上的所有推文(不只是可见的),并选择与类'媒体'和'twitter时间线 - 链接“ - 这避免了标签和句柄。
//Declare helpful functions to get elements by xpath
getElementsByXpath = function (path, doc = document) {
return document.evaluate(path, doc, null, XPathResult.ANY_TYPE, null);
};
getElementByXpath = function (path, doc = document) {
return document.evaluate(path, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
};
console.log("Starting...");
var tweetsXpath = "//li[contains(@id,'stream-item-tweet')]";
var linksXpath = "//a[contains(@class,'twitter-timeline-link') and contains(@class,'media')]";
var tweets = getElementsByXpath(tweetsXpath);
console.log("Tweets: " +tweets); //tweets is an XPathResult object. We can iterate over this.
var tweet = tweets.iterateNext(); //get first tweet
while(tweet != null){
var links = getElementsByXpath(linksXpath, tweet);
var link = links.iterateNext(); //get first link
while(link != null) {
var linkURL = link.getAttribute("href");
//do something with linkURL here
console.log("Found media link in tweet - URL: " + linkURL);
link = links.iterateNext(); //move to next link
}
tweet = tweets.iterateNext(); //move to next tweet
}
console.log("Done");
如果你只想处理可见鸣叫,注释掉这4行:
var tweet = tweets.iterateNext(); //get first tweet
while(tweet != null){
...
tweet = tweets.iterateNext(); //move to next tweet
}
,改变
var links = getElementsByXpath(linksXpath, tweet);
只是
var links = getElementsByXpath(linksXpath);
希望这就是你想要的
感谢您的快速响应。我不确定如何将网址存储在变量中。我的意思是理解我将它存储为一个字符串,然后使用上面的代码行,但我不确定如何从推文中获取链接。我在问题中使用的代码是否在单独链接时起作用?我只是把它们扔在一起,因为在检查页面时,我看到了js-tweet-text类中的链接。另外,如果推文嵌入了两个链接,我该如何解决这个问题?再次感谢! – zweed4u