我正尝试使用Chrome console
从谷歌搜索结果中获取所有链接。
首先,我想获得dom加载源。我试过下面的代码。
var source = document.documentElement.innerHTML;
现在,当我在控制台源中键入source
时,它会显示正确的dom加载源。但是如果我运行alert(source);
它会显示默认的html源页面。
问题是当我在代码
下运行时source.match(/class="r"><a href="(.*?)"/);
它返回null,因为变量source
在dom加载之前有源代码。
答案 0 :(得分:3)
您可以使用DOM API(即getElementsByTagName
)查找页面中的所有a
标记。看看:
var anchors = document.getElementsByTagName('A');
var matchingHrefs = Array.prototype.slice.call(anchors).filter(function(a) {
return a.className == 'r';
}).map(function(a) {
return a.href;
});
<a href="#first" class="r">A</a>
<a href="#second" class="d">B</a>
<a href="#third" class="r">C</a>
Array.prototype.slice.call
来电变为node list into regular array。
答案 1 :(得分:1)
您可能需要在正则表达式中添加/g
标记才能全局匹配。
像这样:
yourHtml.match(/href="([^"]*")/g)