【问题标题】:Scrapy xpath for nested elements用于嵌套元素的 Scrapy xpath
【发布时间】:2017-05-11 07:54:34
【问题描述】:

我认为我使用 Scrapy 错误,但我正在尝试使用 xpath 从页面上的 H2 中仅选择文本并去除内部标签。

例如。

<h2>Welcome to my <a href="#">page</a></h2>
<h2>Welcome to my Page</h2>

我尝试过使用//h2//text(),但它会生成这样的数组

item["h2s"] = response.xpath('//h2//text()').extract()

['Welcome to my',
'page',
'Welcome to my Page']

我尝试了多种组合,但似乎无法得到我想要的数组

['Welcome to my page',
'Welcome to my Page']

【问题讨论】:

    标签: xpath scrapy


    【解决方案1】:

    您可以加入每个h2的所有文本节点:

    In [1]: [''.join(h2.xpath(".//text()").extract()) for h2 in response.xpath("//h2")]
    Out[1]: [u'Welcome to my page', u'Welcome to my Page']
    

    这个话题也很相关:

    【讨论】:

    • 太棒了,刚刚试了一下,效果很好:) 谢谢。在 Scrapy 中做一些相对简单的事情似乎是一件相当复杂的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    相关资源
    最近更新 更多