Puppeteer 获取所有选项的值
Puppeteer get all option's value
我想获取所有选项值的数组,但我总是只获取第一个选项。
HTML来源:
<div class="select-wrapper control-container">
<select name="type" id="product_finder_type" class="widget-input" data-name="type">
<option class="placeholder">Select Vehicle Type</option>
<option value="pc" >Passenger Car</option>
<option value="truck" >Truck</option>
<option value="conag" >Construction and Agriculture</option>
<option value="bike" >Bike</option>
</select>
</div>
我的代码:
const tipusArray = await page.evaluate(() =>
Array.from(
document.querySelectorAll('#product_finder_type'),
(element) =>
element.textContent
)
);
console.log(tipusArray)
结果:
[ '\n\t\t\t\t\t\t\t\tSelect Vehicle Type\t\t\t\t\t\t\t' ]
如何收集所有选项?
主要问题出在您的选择器上:
const tipusArray = await page.evaluate(() =>
Array.from(document.querySelectorAll('#product_finder_type option')).map(element=>element.value)
);
console.log(tipusArray)
以上代码将为您提供所有选项值的数组
前提是所有数据都是静态的。换句话说,如果网站正在使用 js 加载一些数据,那么您将不得不等到网站完成所有 api 调用,然后 运行 查询。
您可以使用以下方法完成上述操作:
await page.waitForTimeout(4000)
我想获取所有选项值的数组,但我总是只获取第一个选项。
HTML来源:
<div class="select-wrapper control-container">
<select name="type" id="product_finder_type" class="widget-input" data-name="type">
<option class="placeholder">Select Vehicle Type</option>
<option value="pc" >Passenger Car</option>
<option value="truck" >Truck</option>
<option value="conag" >Construction and Agriculture</option>
<option value="bike" >Bike</option>
</select>
</div>
我的代码:
const tipusArray = await page.evaluate(() =>
Array.from(
document.querySelectorAll('#product_finder_type'),
(element) =>
element.textContent
)
);
console.log(tipusArray)
结果:
[ '\n\t\t\t\t\t\t\t\tSelect Vehicle Type\t\t\t\t\t\t\t' ]
如何收集所有选项?
主要问题出在您的选择器上:
const tipusArray = await page.evaluate(() =>
Array.from(document.querySelectorAll('#product_finder_type option')).map(element=>element.value)
);
console.log(tipusArray)
以上代码将为您提供所有选项值的数组
前提是所有数据都是静态的。换句话说,如果网站正在使用 js 加载一些数据,那么您将不得不等到网站完成所有 api 调用,然后 运行 查询。
您可以使用以下方法完成上述操作:
await page.waitForTimeout(4000)