【问题标题】:Scrapy Crawl Text after <div><div> 之后的抓取文本
【发布时间】:2018-05-13 14:36:16
【问题描述】:

我想使用 Scrapy 抓取以下 HTML 代码:

<td class="xyz"> 
   <div>Irrelevant</div>
   I want to get this text! 
</td>

如何提取该文本?

response.css('td.xyz::text').extract()

返回''

【问题讨论】:

    标签: html css scrapy web-crawler


    【解决方案1】:

    即使额外的div 存在与否,您也可以这样做来获取您想要的文本

    response.css('td.xyz::text').extract()[-1]
    

    【讨论】:

    • 谢谢,这行得通。但为什么? :) 我不明白...
    【解决方案2】:
    response.xpath('//td[@class="xyz"]/text()[2]').extract_first()
    

    【讨论】:

    • 谢谢,会试试的。不幸的是,有时这个额外的
      存在,有时不存在。我怎样才能一直得到文本?你的命令还能用吗?
    • @pmax1 否,但您可以使用另一种方法:获取整个 &lt;td&gt; 元素,然后从中删除所有不相关的元素(使用 lxml.remove()
    • 可能是response.xpath('//td[@class="xyz"]/text()').extract()将为您工作
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签