我有以下网页: https://www.bbc.co.uk/search?q=Juice&sa_f=search-product&filter=news&suggid=
对于每篇文章,我都有以下html部分,我想从以下文本中删除:
<dd>
<span class="signpost-site" data-site="news">News
</span>
<span class="signpost-section">Europe
</span>
</dd>
在这种情况下,我想要&#34;欧洲&#34;
有时是
<span class="signpost-section">
缺少,而是
<dd>
<span class="signpost-site" data-site="news">News
</span>
</dd>
在这种情况下,我想&#34;&#34;
目的是创建一个csv并确保每篇文章在正确的索引号处都有正确的标记。
目前我的代码是
response.xpath('//footer//dd/span[@class="signpost-section"]/text()').extract()
仅获取现有标签。我不确定如何检查
<span class="signpost-section">
存在于
中response.xpath('//footer//dd/span[@class="signpost-site"])
理想情况下,我想要一些符合
的内容if <span class="signpost-section"> (exists in) response.xpath('//footer//dd/span[@class="signpost-site"])
then
response.xpath('//footer//dd/span[@class="signpost-section"]/text()').extract()
else ""
答案 0 :(得分:1)
我只会将.extract_first()
与指定的默认值一起使用(在不匹配时使用):
response.xpath('//footer//dd/span[@class="signpost-section"]/text()').extract_first(default='')