为了账号安全,请及时绑定邮箱和手机立即绑定

Scrapy:使用 CSS 选择器排除节点/标签

Scrapy:使用 CSS 选择器排除节点/标签

慕码人2483693 2021-10-19 14:52:47
在文档和 SO 文章中,只有关于如何使用此命名法排除 CSS 类的参考:response.css("div[id='content']:not([class*='infobox'])")我想然而实现是排除的节点,或甚至,多个节点,诸如<span>和<div>元件,其内部<li>元件。让我给你举个例子。假设我正在抓取这个 HTML:<li class="classA">  <div class="classB">    ..  </div>  <span class="classC">Whatever</span>  This is the string I want to scrape</li>,我只对抓取文本“这是我想要抓取的字符串”感兴趣,因此我想跳过<div>和<span>节点。我尝试在scrapy shell中使用以下内容,但无济于事:response.css(".classA:not(span|div)::text").extract(),但我仍然得到排除的节点。
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

这很容易:

1.使用css选择器

response.css('li.classA::text').extract_first()

2. 使用 xpath 选择器

response.xpath('//li[@class = "classA"]/text()').extract_first()


查看完整回答
反对 回复 2021-10-19
?
交互式爱情

TA贡献1712条经验 获得超3个赞

简单:

response.css('li::text').extract_first()


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 376 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号