【发布时间】:2018-08-10 08:24:48
【问题描述】:
我正在使用scrapy解析HTML文件,内容如下:
<p class="title">
<a href="#">#Who#</a>
I don't <em>know</em>
who you are
</p>
我想提取顺序中'p'标签中不包含'a'标签的所有文本。所以我期望的结果是:
["I don't ", 'know', 'who you are']
我尝试使用以下代码:
>>>selector = Selector(text="<p class='title'><a href='#'>#Who#</a>I don't <em>know</em>who you are</p>")
>>>p_txt =selector.xpath('//p[@class="title"]/text()').extract()
["I don't ", 'who you are']
结果,'em'标签中的文字被忽略了。我也尝试使用以下代码:
>>>p_txt =selector.xpath('//p[@class="title"]/descendant::text()').extract()
['#Who#', "I don't ", 'know', 'who you are']
但它也会导出'a'标签中的文本。有没有人有好的解决方案?
谢谢
【问题讨论】:
标签: python-3.x xpath web-scraping scrapy