首页 > 解决方案 > 如何在xpath的另一个表中排除一个表?

问题描述

我有以下 html 文件:

<table class="pd-table">
<caption> Tech </caption>
<tbody>
    <tr data-group="1">
        <td> Electrical </td>
        <td> Design </td>
    <tr data-group="1">
        <td> Output </td>
        <td> Function </td>
    <tr data-group="7">
        <td> EMC </td>
        <table>
        <tbody>
            <tr>
                <td> EN 6547 ESD </td>
                <td> EN 8901 ESD </td>
    <tr data-group="8">
        <td> Weight [8] </td>
        <td> 27.7 </td>

我可以使用以下 xpath 隔离 EN 6547 ESD 和 EN 8901 ESD:

//table[@class="pd-table"]//tbody//tr//td/table//tr//td/text()').getall()

任何其他方式总是受欢迎的:)

我想获得的另一个数据是在没有先前隔离的情况下获取所有其余数据。

有什么办法吗?:)

标签: xpathscrapy

解决方案


看起来table标签没有正确关闭......无论如何,在这种情况下,您可以使用或data-group-7坚持单元格的文本内容contains()text()="some exact text"

response.xpath('//td[contains(text(), "EMC")]').css('td~table tbody td::text').extract()

推荐阅读