gpt4 book ai didi

python - 避免 scrapy 上的重复值

转载 作者:行者123 更新时间:2023-12-01 01:57:52 26 4
gpt4 key购买 nike

我正在从 course talk 抓取 MOOC 数据页面,并且我在清理某些字段时遇到问题,例如大学名称。

从上面的链接我想得到:麻省理工学院

这是我用于该字段的 xpath:

response.xpath('//*[@class="course-info__school__name"]//text()').extract()

这里的问题是我从中得到了重复的值和空字符串:

[u'\n            ',
u'University:\xa0',
u'\n Massachusetts Institute of Technology\n ',
u'\n ',
u'University:\xa0',
u'\n Massachusetts Institute of Technology\n ']

最佳答案

您可以通过使用 not (排除内部子跨度节点)函数和 normalize-space 函数来跳过内部 span 跳过白-仅空格文本字符串和干净文本:

//*[@class="course-info__school__name"]/text()[not(self::span)][normalize-space()]

结果你应该得到两个相等的字符串,仅包含大学名称:

[u'Massachusetts Institute of Technology',
u'Massachusetts Institute of Technology']

您可以使用 python set 仅获取唯一名称:

>>> l = [u'Massachusetts Institute of Technology',
... u'Massachusetts Institute of Technology']
>>> set(l)
set([u'Massachusetts Institute of Technology'])

如果你只需要第一个div的内容,你可以通过索引1通过xpath获取它:

(//*[@class="course-info__school__name"])[1]/text()[not(self::span)][normalize-space()]

关于python - 避免 scrapy 上的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49958388/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com