0

我可以在 pupeeter 中获取 html 元素的textContent :

var website_element = await page.$('a[itemprop="url"]');
var website= await (await website_element .getProperty('textContent')).jsonValue();

然而,有时textContent还不够,请参阅以下 html:

<a itemprop="url" href="https://www.4-b.ch/de/4b-fenster-fassaden/home/">
https://www.4-b.ch/de/4b-fenster-fassad...</a>

结果是模糊的:“ https://www.4-b.ch/de/4b-fenster-fassad ... ” 最后带有...

所以,我最好得到href属性。

但当:

var website_element = await page.$('a[itemprop="url"]');
var website = await (await website_element.getAttribute('href')).jsonValue();

结果是TypeError: website_element.getAttribute is not a function

有什么建议吗?

4

2 回答 2

1

使用page.$eval函数有一种简单快捷的方法:

var website = await page.$eval('a[itemprop="url"]', el => el.href);

page.$eval它首先使用提供的选择器(第一个参数)在 DOM 中找到一个元素,然后使用找到的元素作为其唯一参数调用回调(第二个参数)。回调的返回值成为page.$eval()自身的返回值。

于 2019-06-28T10:27:32.690 回答
0

有用:

var website_element = await page.$('a[itemprop="url"]');
var website = await (await website_element.getProperty('href')).jsonValue();
于 2019-06-27T13:17:55.200 回答