Javascript 循环浏览html列表并获取内容
我正在处理一个具有以下结构的页面Javascript 循环浏览html列表并获取内容,javascript,puppeteer,Javascript,Puppeteer,我正在处理一个具有以下结构的页面 这是我到目前为止的代码 const puppeter=require('puppeter') 常量main=async()=>{ const browser=wait puppeter.launch() const page=wait browser.newPage() 等待page.goto('link-to-my-website')) 等待page.waitForSelector(“部分[id='名人]”); //const movies=w
这是我到目前为止的代码
const puppeter=require('puppeter')
常量main=async()=>{
const browser=wait puppeter.launch()
const page=wait browser.newPage()
等待page.goto('link-to-my-website'))
等待page.waitForSelector(“部分[id='名人]”);
//const movies=wait page.$$(“#名人>li.list条目”);
//for(设i=0;i<2;i++){
//常量元素=电影[i];
//控制台日志(元素);
// }
const movies=wait page.$$(“#著名>li.list条目”,el=>el.innerText);
movies.forEach(元素=>{
控制台日志(元素);
});
等待浏览器关闭()
}
main()
现在我不知道如何将span
的内容放入数组。这样我就可以访问a
标签中的链接。请帮忙
谢谢根据,页面。$$
返回元素句柄的数组
。这些因素也提供了一些好处。您应该能够查询所需的子元素。例如:
const movies = await page.$$('#famous > li.list-entry');
for (const movie of movies) {
const name = await movie.$eval('.item-name > a', el => el.innerText);
const itemUploaded = await movie.$eval('.item-uploaded > a', el => el.innerText);
console.log(name, itemUploaded);
}
根据,page.$$
返回ElementHandle
的数组。这些因素也提供了一些好处。您应该能够查询所需的子元素。例如:
const movies = await page.$$('#famous > li.list-entry');
for (const movie of movies) {
const name = await movie.$eval('.item-name > a', el => el.innerText);
const itemUploaded = await movie.$eval('.item-uploaded > a', el => el.innerText);
console.log(name, itemUploaded);
}
我想你可以用一个css选择器来做这个
const$$=(选择器,cb)=>新承诺(解析=>
解析([…document.queryselectoral(选择器)].map(cb));
$$(“#著名的li.list-entry span a”,el=>el.innerText);
//甚至更简单
$$(“#a”,el=>el.innerText)。然后(r=>console.log(r))代码>
-
-
-
我想你可以用一个css选择器来实现这一点
const$$=(选择器,cb)=>新承诺(解析=>
解析([…document.queryselectoral(选择器)].map(cb));
$$(“#著名的li.list-entry span a”,el=>el.innerText);
//甚至更简单
$$(“#a”,el=>el.innerText)。然后(r=>console.log(r))代码>
-
-
-
目前控制台的输出是什么?@nubinub对象列表以及您希望阵列中的具体内容是什么?电影名称?电影链接?是的,电影标题和数组中的链接每个li
都有一个数组当前控制台的输出是什么?@nubinub对象列表以及您希望数组中有什么?电影名称?电影链接?是的,电影标题和数组中的链接每个li
都有一个数组,我倾向于相信OP确实希望提供一个与li
计数相同大小的数组,这在这个选择器中是不可能的。@nubinub您想让我将html更改为我正在使用的html吗?啊,好的。也许减速机会有帮助(从$$(“#著名的李”)
)谢谢@KooiInc,我稍后会试试。感谢v muchI倾向于相信OP确实希望提供与li
计数相同大小的数组,这在这个选择器中是不可能的。@nubinub您想让我将html更改为我正在使用的html吗?啊,好的。也许减速机会有帮助(从$$(“#著名的李”)
)谢谢@KooiInc,我稍后会试试。谢谢你知道link2不是类名吗?.link2
工作正常吗?很好,我误读了html。这并没有完全解决我的问题,但它帮助我前进了一步,谢谢你知道link2
不是类名吗?.link2
工作正常吗?很好,我误读了html。这并没有完全解决我的问题,但它帮助我向前迈进了一步,谢谢