W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
根據(jù)W3C標準, CSS selectors 不支持選擇文本節(jié)點或?qū)傩灾?。但是在Web抓取上下文中選擇這些是非常重要的,以至于scrappy(parsel)實現(xiàn)了 non-standard pseudo-elements :
::text
?::attr(name)
? 在哪里? name 是要為其值的屬性的名稱警告
這些偽元素是特定于scrapy-/parsel的。他們很可能不會與其他類庫合作 lxml 或 PyQuery .
實例:
title::text
? 選擇子代的子文本節(jié)點 ?<title>
? 元素:>>> response.css('title::text').get()
'Example website'
*::text
? 選擇當前選擇器上下文的所有子代文本節(jié)點:>>> response.css('#images *::text').getall()
['\n ',
'Name: My image 1 ',
'\n ',
'Name: My image 2 ',
'\n ',
'Name: My image 3 ',
'\n ',
'Name: My image 4 ',
'\n ',
'Name: My image 5 ',
'\n ']
foo::text
? 如果 ?foo
? 元素存在,但不包含文本(即文本為空):>>> response.css('img::text').getall()
[]
這意味著 ?.css('foo::text').get()
? 即使元素存在,也無法返回“無”。使用 ?default=''
? 如果您總是想要字符串:
>>> response.css('img::text').get()
>>> response.css('img::text').get(default='')
''
a::attr(href)
? 選擇 href 子鏈接的屬性值:>>> response.css('a::attr(href)').getall()
['image1.html',
'image2.html',
'image3.html',
'image4.html',
'image5.html']
注解
參見: 選擇元素屬性 .
注解
不能鏈接這些偽元素。但在實踐中,這沒有多大意義:文本節(jié)點沒有屬性,屬性值已經(jīng)是字符串值,也沒有子節(jié)點。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: