1. 程式人生 > >筆記-scrapy-Selector

筆記-scrapy-Selector

情況 ttr path 常用 xtra page radio input list

筆記-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