用puppeteer获取class="news mt10"下所有的li标签下的a标签的值和链接另一种方法
时间: 2023-02-06 09:38:41 浏览: 74
可以使用以下代码来获取 class="news mt10" 下所有的 li 标签下的 a 标签的值和链接:
```
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('your-url-here');
// 获取 class="news mt10" 下所有的 li 标签
const lis = await page.$$('.news.mt10 li');
for (const li of lis) {
// 获取 li 标签下的 a 标签
const a = await li.$('a');
// 获取 a 标签的文本内容
const text = await page.evaluate(a => a.textContent, a);
// 获取 a 标签的链接
const href = await page.evaluate(a => a.getAttribute('href'), a);
console.log(text, href);
}
await browser.close();
})();
```
希望这能帮到你!
相关问题
用puppeteer获取class="news mt10"下li标签下的a标签的值和链接另一种方法
可以使用以下方法来获取所需的信息:
1. 使用 `document.querySelectorAll` 方法获取所有满足选择器 `.news.mt10 li a` 的元素。这会返回一个包含所有符合条件的元素的 NodeList。
2. 使用 `for` 循环遍历 NodeList。在循环体内,可以使用 `element.textContent` 和 `element.href` 属性获取文本内容和链接。
示例代码如下:
```
const links = document.querySelectorAll('.news.mt10 li a');
for (const link of links) {
console.log(link.textContent);
console.log(link.href);
}
```
这种方法需要在浏览器环境中执行,如果要在 Node.js 环境中使用 Puppeteer 获取这些信息,可以在使用 Puppeteer 打开页面之后,使用 Puppeteer 的 `page.evaluate` 方法在浏览器中执行上述代码。
另外,还可以使用 Puppeteer 的 `page.$$` 方法来获取符合选择器的元素列表,然后使用 `for` 循环遍历这些元素,并使用 `element.getProperty` 方法获取文本内容和链接。示例代码如下:
```
const links = await page.$$('.news.mt10 li a');
for (const link of links) {
const text = await link.getProperty('textContent');
const href = await link.getProperty('href');
console.log(await text.jsonValue());
console.log(await href.jsonValue());
}
```
用puppeteer获取class="news mt10"下li标签下的a标签的值和链接
Puppeteer 是一个 Node.js 库,它提供了一组用来控制 Chrome 或者 Chromium 的 API。
要获取 class 为 "news mt10" 的元素下的 li 标签中的 a 标签的值和链接,你可以这样做:
1. 使用 Puppeteer 的 `page.evaluate()` 方法在浏览器中执行 JavaScript 代码,通过 DOM 操作获取所需的信息。
2. 在浏览器中使用 DOM 方法获取 class 为 "news mt10" 的元素,例如 `document.querySelector('.news.mt10')`。
3. 获取该元素下的所有 li 标签,例如使用 `querySelectorAll()` 方法。
4. 循环遍历 li 标签,获取每个 li 标签中的 a 标签的值和链接。
5. 将获取的信息返回给 Node.js 程序。
这里是一个示例代码:
```
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://example.com');
const links = await page.evaluate(() => {
// 获取 class 为 "news mt10" 的元素
const newsElement = document.querySelector('.news.mt10');
// 获取该元素下的所有 li 标签
const links = newsElement.querySelectorAll('li');
// 存储 a 标签的信息
const result = [];
// 循环遍历 li 标签
for (const link of links) {
result.push({
text: link.textContent, // a 标签的值
href: link.href, // a 标签的链接
});
}
return result;
});
console.log(links);
await browser.close();
})();
```
希望这能帮