puppeteer 获取某个class下a标签 的href
时间: 2023-02-06 17:05:30 浏览: 66
使用 Puppeteer 获取某个 class 下的 a 标签的 href 可以这样做:
1. 先使用 `page.$$('.className a')` 来获取 class 为 `className` 的元素下的所有 a 标签。这会返回一个包含 a 标签的 ElementHandle 数组。
2. 然后遍历这个数组,对于每个 a 标签,使用 `page.$eval` 方法来获取它的 href 属性。例如:
```
const links = await page.$$('.className a');
for (const link of links) {
const href = await page.evaluate(el => el.getAttribute('href'), link);
console.log(href);
}
```
注意: 上面的代码中使用了异步操作,因此需要使用 `await` 关键字来等待结果。
希望这能帮到你!
相关问题
puppeteer 获取a标签 的href
如果你想使用 Puppeteer 获取页面中的 `a` 标签的 `href` 属性,你可以使用以下方法:
1. 在 Puppeteer 中打开一个页面:
```
const puppeteer = require('puppeteer');
async function getHref() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://example.com');
}
getHref();
```
2. 使用 `page.$$eval()` 方法查找页面中所有的 `a` 标签:
```
const aTags = await page.$$eval('a', elements => {
return elements.map(element => element.href);
});
```
这将返回一个包含页面中所有 `a` 标签 `href` 属性值的数组。
如果你只想获取单个 `a` 标签的 `href` 属性,你可以使用 `page.$eval()` 方法来代替 `page.$$eval()`,并指定一个选择器来确定要获取的元素。例如:
```
const aHref = await page.$eval('a.some-class', element => element.href);
```
这将返回页面中第一个匹配选择器 `a.some-class` 的元素的 `href` 属性值。
使用 Puppeteer 获取ul 下面li标签下的a标签
可以使用 Puppeteer 的 `page.$eval` 方法来获取 ul 下的 li 标签下的 a 标签。
例如,假设你想获取页面中 ul 元素的第一个 li 元素的 a 元素的文本内容,你可以这样写:
```
const ul = await page.$('ul');
const li = await ul.$('li:first-of-type');
const a = await li.$('a');
const text = await page.evaluate(a => a.textContent, a);
console.log(text);
```
如果你想获取 ul 下所有的 li 元素的 a 元素,可以使用 `page.$$` 方法来获取所有符合条件的元素,然后遍历这些元素,对每个元素执行类似的操作。
例如:
```
const lis = await ul.$$('li');
for (const li of lis) {
const a = await li.$('a');
const text = await page.evaluate(a => a.textContent, a);
console.log(text);
}
```
希望这对你有帮助!