Javascript 获取所有无序列表元素及其文本木偶
我试图检索一个无序列表以及其中的所有元素。Javascript 获取所有无序列表元素及其文本木偶,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我试图检索一个无序列表以及其中的所有元素。中有的城市名称作为文本,我想得到这些城市 await page .$eval( "body > div.page > div.container.account.cf > div.account-content > div.addressPage > div.addressCard.addAddressCard > div:nth-child(6) > ul",
中有
的城市名称作为文本,我想得到这些城市
await page
.$eval(
"body > div.page > div.container.account.cf > div.account-content > div.addressPage > div.addressCard.addAddressCard > div:nth-child(6) > ul",
(ul) => {
console.log(ul.innerHTML);
for (let i = 0; i < ul.children.length; i++) {
cityArray.push(ul.children[i].textContent);
}
}
)
.then((array) => console.log(array))
.catch((err) => console.log(err));
等待页面
25美元评估(
“body>div.page>div.container.account.cf>div.account-content>div.addressPage>div.addressCard.addAddressCard>div:nth child(6)>ul”,
(ul)=>{
log(ul.innerHTML);
for(设i=0;iconsole.log(数组))
.catch((err)=>console.log(err));
当我尝试使用
console.log
时,不会打印任何内容。由于pageFunction
是在浏览器上下文中计算的,因此需要在浏览器中查看控制台输出
作为替代方案,您可以将内部HTML保存在函数外部并记录它,然后:
constulhtml='';
等待页面。$eval(
“body>div.page>div.container.account.cf>div.account-content>div.addressPage>div.addressCard.addAddressCard>div:nth child(6)>ul”,
(ul)=>{
ulHtml=ul.innerHTML;
}
);
关于你的标题问题:.innerHTML
没有返回数组[],所以你不能将它保存在那样的数组中。要获得包含每个
文本的数组,只需在页面函数中对其进行循环:
等待页面。$eval(
“body>div.page>div.container.account.cf>div.account-content>div.addressPage>div.addressCard.addAddressCard>div:nth child(6)>ul”,
(ul)=>{
常数cityArray=[];
for(设i=0;i{console.log(cityArray)});
控制台.log
无法工作,因为页面功能是在浏览器上下文中评估的,因此您需要在浏览器中查看控制台输出
作为替代方案,您可以将内部HTML保存在函数外部并记录它,然后:
constulhtml='';
等待页面。$eval(
“body>div.page>div.container.account.cf>div.account-content>div.addressPage>div.addressCard.addAddressCard>div:nth child(6)>ul”,
(ul)=>{
ulHtml=ul.innerHTML;
}
);
关于你的标题问题:.innerHTML
没有返回数组[],所以你不能将它保存在那样的数组中。要获得包含每个
文本的数组,只需在页面函数中对其进行循环:
等待页面。$eval(
“body>div.page>div.container.account.cf>div.account-content>div.addressPage>div.addressCard.addAddressCard>div:nth child(6)>ul”,
(ul)=>{
常数cityArray=[];
for(设i=0;i{console.log(cityArray)});
谢谢,这很有效,这是另一个问题。城市阵列被推后,我该怎么做。我已经编辑了代码以显示承诺链接,但我收到一个错误,说“cityArray未定义”,当我的答案有帮助时,请在我的答案左侧用复选标记。要在下一个中使用数组,则需要返回它。我已经相应地更新了我的答案。谢谢,这很有效,这是另一个问题。城市阵列被推后,我该怎么做。我已经编辑了代码以显示承诺链接,但我收到一个错误,说“cityArray未定义”,当我的答案有帮助时,请在我的答案左侧用复选标记。要在下一个中使用数组,则需要返回它。我已经相应地更新了我的答案。