我用过木偶(更多信息请参见:YT:Puppeteer Youtube Video WebSite)并可以使用$ x评估语句的XPATH编写程序。
const [WCPub] = await page.$x('//*[@id="details"]/div/table/tbody/tr[3]/td');
但是现在我需要一个querySelector以及一个选择器字符串。从XPATH进行的以下传输不起作用。谁能告诉我基于XPATH的正确的querySelector字符串?
WCPub = WCbookelement.querySelector('//*[@id="details"]/div/table/tbody/tr[3]/td');
我已经尝试过:
WCbookJson.BOOKPUB = WCbookelement.querySelector('#"details" div > table >
tbody > tr[3] >td').innerHTML;
这是Worldcat的Publication字段:
但是会收到一个错误消息,表明选择器无效。我没有正确理解什么?
谢谢沃尔特
您想删除ID选择器周围的双引号("
),并使用:nth-child
选择该行的正确索引。
但是老实说,我认为您已将选择器从xPath转换为字面意义。您可能也可以只执行#details tr:nth-child(3) > td
(取决于您的html结构)。
var text = document.querySelector('#details > div > table > tbody > tr:nth-child(3) > td').innerHTML;
console.log(text);
<div id="details">
<div>
<table>
<tbody>
<tr>
<td>Row 1</td>
</tr>
<tr>
<td>Row 2</td>
</tr>
<tr>
<td>Row 3</td>
</tr>
</tbody>
</table>
</div>
</div>