scrapy自带文本解析器,支持xpath,css等方法。
调试时常需要从text中解析数据,使用方法如下:
from scrapy.selector import Selector
page_data = Selector(text=’’,type=’html/xml’)
一般不需要指定type参数。
Selector.xpath() 返回SelectorList对象
Selector.css() 返回SelectorList对象
SelectorList.extract() 返回List对象
SelectorList.extract_first(default) 返回String对象,可以有默认值,类似dict.get(key, default)
略
语法 说明
* 选择所有节点
#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标签下的文本
xpath功能强大,比较常用
css不方便一些,在部分情况下比xpath好用
re效率最高,但使用最繁琐。
原文:https://www.cnblogs.com/wodeboke-y/p/10739117.html