我有以下html
:
<div class="articleBody">
<p>
<strong>Text</strong> lorem ipsum...
<strong>lorem ipsum...</strong>
</p>
<p>lorem ipsum
<strong> lorem ipsum lorem ipsum</strong>
lorem ipsum...lorem ipsum...lorem ipsum...lorem ipsum...
</p>
</div>
更一般地说,我有一个<p>
标记列表,里面有几个<strong>
标记。
我想获取所有<p>
代码的文字,减去<strong>
代码...而且,我只是指“articleBody”div
中的文字类。
我拥有的是
response.xpath('string(//div[@class="articleBody"]//p)'.extract()
但只返回第一个<p>
。
任何帮助都将不胜感激。
答案 0 :(得分:4)
试一试:
for node in response.xpath('//div[@class="articleBody"]//p'):
print node.xpath('string()').extract()
...然后你可以连接你的字符串或将它们添加到列表或其他任何内容,而不是像我一样打印它们。
还有xpath 2.0的string-join()函数,但看起来scrapy支持xpath 1.0。
有关string-join的更多信息,请点击此处:http://www.w3.org/TR/xpath-functions/#func-string-join