筆記-scrapy-Selector
筆記-scrapy-Selector
1. Selector
scrapy自帶文本解析器,支持xpath,css等方法。
1.1. 基礎使用
調試時常需要從text中解析數據,使用方法如下:
from scrapy.selector import Selector
page_data = Selector(text=’’,type=’html/xml’)
一般不需要指定type參數。
1.2. 提取內容
Selector.xpath() 返回SelectorList對象
Selector.css() 返回SelectorList對象
SelectorList.extract() 返回List對象
SelectorList.extract_first(default) 返回String對象,可以有默認值,類似dict.get(key, default)
1.3. xpath選擇器語法
略
1.4. CCS選擇器語法
語法 說明
* 選擇所有節點
#container 選擇id為container的節點
.container 選擇所有class包含container的節點
div,p 選擇所有 div 元素和所有 p 元素
li a 選取所有li 下所有a節點
ul + p 選取ul後面的第一個p元素
div#container > ul 選取id為container的div的第一個ul子元素
ul ~p 選取與ul相鄰的所有p元素
a[title] 選取所有有title屬性的a元素
a[href=”http://baidu.com”] 選取所有href屬性為http://baidu.com的a元素
a[href*=”baidu”] 選取所有href屬性值中包含baidu的a元素
a[href^=”http”] 選取所有href屬性值中以http開頭的a元素
a[href$=”.jpg”] 選取所有href屬性值中以.jpg結尾的a元素
input[type=radio]:checked 選擇選中的radio的元素
div:not(#container) 選取所有id為非container 的div屬性
li:nth-child(3) 選取第三個li元素
li:nth-child(2n) 選取第偶數個li元素
a::attr(href) 選取a標簽的href屬性
a::text 選取a標簽下的文本
1.5. 總結
xpath功能強大,比較常用
css不方便一些,在部分情況下比xpath好用
re效率最高,但使用最繁瑣。
筆記-scrapy-Selector