加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在Scrapy中使用normalize-space

发布时间:2020-12-20 11:47:14 所属栏目:Python 来源:网络整理
导读:下面是我正在处理的文档的模型: divh4Area/h4 span class="aclass" /span span class="bclass" strongAddress:/strong 10 Downing Street London SW1 /span/div 我得到的地址是这样的: response.xpath(u".//h4[. = 'Area']/following-sibling::span[contai
下面是我正在处理的文档的模型:

<div>
<h4>Area</h4>
  <span class="aclass"> </span>
  <span class="bclass">
        <strong>Address:</strong>
  10 Downing Street

  London

  SW1
  </span>
</div>

我得到的地址是这样的:

response.xpath(u".//h4[. = 'Area']/following-sibling::span[contains(.,'Address:')]/text()").extract()

返回

[u'rn  t',u'rn  10 Downing Streetrnrn  London     rn  rn  SW1rn  ']

我正试着用normalize-space来清理它.我已经尝试将它放在我能想到的每个位置,但它要么告诉我语法错误,要么返回一个空字符串.

更新以添加我正在尝试使其工作而不会过多地更改选择器.我有类似的情况,没有< strong>标签,例如.我在这里准备的示例中选择器过于复杂,但在实时版本中,我必须采用相当复杂的路径才能到达地址.

关于可能的重复遵循可能重复的建议,我添加/ normalize-space(.)给出:

(u".//h4[. = 'Area']/following-sibling::span[contains(.,'Address:')]/text()/normalize-space(.)").extract()

这会产生ValueError:无效的XPath:错误.

解决方法

"normalize-space(//strong[contains(text(),'Address:')]/following-sibling::node())"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读