gpt4 book ai didi

python - Scrapy 抓取元素在表中太深

转载 作者:行者123 更新时间:2023-11-28 22:50:25 25 4
gpt4 key购买 nike

我试图用 Scrapy 抓取一个表,并且遇到了一个问题,由于表的结构,我得到了太多的子节点。

比如表后面的一个td中有一个表,大概是这样的:

<table>
<tr>
<td>
Text I want
</td>
<td>
<table>
<tr>
<td>
Text I do not want
</td>
</tr>
</td>
</table>

所以当我告诉它抓取时:

td[1]/text()

它抓取每个 tr 的第一个 td 中的文本——这正是我想要的——但有些 tds 有自己的表格!不要问我为什么他们以这种方式构建这个东西,或者为什么实际上找不到比表级别本身更深的类或 id,但事实就是如此。所以我也在表内的第一个 td 中返回文本......这是我不想要的(还)在后面的 tds 中。

没有 id 或类,我如何才能更具体地了解只需要第一个 td 的文本而不需要表格中更深层次的任何内容?

最佳答案

有几个选项可以继续:

  • 使用到顶层td的相对xpath(没有会导致递归搜索的绝对//):

    /path_to_table/table/tr/td[1]/text()
  • 检查 td 在它的祖先中只有一个 table:

    //td[count(ancestor::table) = 1]/text()

希望对您有所帮助。

关于python - Scrapy 抓取元素在表中太深,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22650441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com