如何获取页面上所有链接的属性值?

时间:2019-04-23 17:24:29

标签: javascript python css selenium

我正在尝试在this页上标有'gs-title'类的所有链接上获取'data-ctorig'属性的值列表。

我可以获得第一个链接的值 document.querySelector('a.gs-title').getAttribute('data-ctorig') 但可以有其他人。 另外,我可以使用获取节点列表的列表(idk这是什么) document.querySelectorAll('a.gs-title') 但是我不知道如何获取基于此节点列表的属性值列表。

我也尝试使用:nth-​​of-type()但在第一个值之后我只有null

var x = document.querySelector("a.gs-title:nth-of-type(1)").getAttribute("data-ctorig")

我还将python与selenium webdriver一起使用,因此如果有人知道如何在python上做到这一点,将会以同样的方式帮助我。

2 个答案:

答案 0 :(得分:0)

你是这个意思吗? :)

var links = document.querySelectorAll('a.gs-title');
var list = [];
links.forEach((link) => {
list.push(link.getAttribute('data-ctorig'));
});
console.log(list);
<a class="gs-title" data-ctorig="Test1"><b>AMANDA</b> MIZUKAMI</a>
<a class="gs-title" data-ctorig="Test2"><b>AMANDA</b> MIZUKAMI</a>
<a class="gs-title" data-ctorig="Test3"><b>AMANDA</b> MIZUKAMI</a>

答案 1 :(得分:0)

首先使用querySelectorAll获取所有.gs-title节点。

var gstitles = document.querySelectorAll('a.gs-title')

您现在可以使用gstitles.length确定有多少个。

gstitles.length;

接下来,我们需要设置一个for循环。 请查看下面的代码段。

for (i=0;i<gstitles.length;i++) 
{
console.log(gstitles[i].getAttribute('data-ctorig'));
}

var gstitles = document.querySelectorAll('a.gs-title')

for (i=0;i<gstitles.length;i++) 
{
console.log(gstitles[i].getAttribute('data-ctorig'));
}
<div class="gs-title"><a class="gs-title" href="https://www.teses.usp.br/teses/disponiveis/27/27151/tde-19032008-183924/publico/AmandaTojal.pdf" target="_blank" dir="ltr" data-cturl="https://www.google.com/url?q=https://www.teses.usp.br/teses/disponiveis/27/27151/tde-19032008-183924/publico/AmandaTojal.pdf&amp;sa=U&amp;ved=0ahUKEwiWo7TB3-bhAhUF16wKHaWeCXoQFggEMAA&amp;client=internal-uds-cse&amp;cx=011662445380875560067:cack5lsxley&amp;usg=AOvVaw2g3t_0fFH8wjhfjcku0DL3" data-ctorig="https://www.teses.usp.br/teses/disponiveis/27/27151/tde-19032008-183924/publico/AmandaTojal.pdf"><b>AMANDA</b> PINTO DA FONSECA TOJAL</a></div><div class="gs-title gsc-table-cell-thumbnail gsc-thumbnail-left"><a class="gs-title" href="https://www.teses.usp.br/teses/disponiveis/27/27151/tde-19032008-183924/publico/AmandaTojal.pdf" target="_blank" dir="ltr" data-cturl="https://www.google.com/url?q=https://www.teses.usp.br/teses/disponiveis/27/27151/tde-19032008-183924/publico/AmandaTojal.pdf&amp;sa=U&amp;ved=0ahUKEwiWo7TB3-bhAhUF16wKHaWeCXoQFggEMAA&amp;client=internal-uds-cse&amp;cx=011662445380875560067:cack5lsxley&amp;usg=AOvVaw2g3t_0fFH8wjhfjcku0DL3" data-ctorig="https://www.teses.usp.br/teses/disponiveis/27/27151/tde-19032008-183924/publico/AmandaTojal.pdf"><b>AMANDA</b> PINTO DA FONSECA TOJAL</a></div><div class="gs-title"><a class="gs-title" href="https://www.google.com/url?q=http://www.teses.usp.br/teses/disponiveis/17/17153/tde-06012017-103806/publico/AmandaMizukamiDOCorrig.pdf&amp;sa=U&amp;ved=0ahUKEwiWo7TB3-bhAhUF16wKHaWeCXoQFggGMAE&amp;client=internal-uds-cse&amp;cx=011662445380875560067:cack5lsxley&amp;usg=AOvVaw0Jdjapa8W60DfKRyUIAdoH" target="_blank" dir="ltr" data-cturl="https://www.google.com/url?q=http://www.teses.usp.br/teses/disponiveis/17/17153/tde-06012017-103806/publico/AmandaMizukamiDOCorrig.pdf&amp;sa=U&amp;ved=0ahUKEwiWo7TB3-bhAhUF16wKHaWeCXoQFggGMAE&amp;client=internal-uds-cse&amp;cx=011662445380875560067:cack5lsxley&amp;usg=AOvVaw0Jdjapa8W60DfKRyUIAdoH" data-ctorig="http://www.teses.usp.br/teses/disponiveis/17/17153/tde-06012017-103806/publico/AmandaMizukamiDOCorrig.pdf"><b>AMANDA</b> MIZUKAMI</a></div>