1,创建对象

Selector类的实现位于scrapy.selector模块,创建Selector对象时,可以将页面的HTML文档字符传递给Selector对象的构造方法的text参数或者直接传递页面response对象参数也行。
from scrapy.selector import Selector
# 方法一、 
text ="<html>.........</html>"
selector = Selector(text=text)
# 方法二、`在这里插入代码片`
# response是页面响应对象。
selector = Selector(response=response)

2,数据选择

Selector 对象有xpath方法和css方法,xpath和css 返回值都是SelectorList(列表可迭代)对象。
# xpth提取数据
selector.xpath("//h1")
# css 提取数据
selector.css("#id")

3,数据提取

Selector 对象和SelectorList对象都有以下几种方法。
extract()     返回选中内容的Unicode字符串
re()           正则提取
extract_first()(SelectorList独有)   返回列表中的第一个元素内容
re_first()(SelectorList独有)         返回列表中的第一个元素内容

4,scrapy框架内置对象

在response对象中内置的有selector,因此,在开发中我们一般不需要手动创建Selector对象(有兴趣可以看看框架源码),为了用户方便,还提供了了xpath方法和css方法(内部实现其实就是创建Selector对象,调用相应的xpath方法或者css方法)(有兴趣的话,可以看看框架源码)。
response.xpath("//div")
response.css("#id")

5,xpath选择数据和css选择数据

对于此我就不再一一说明了。
                                    1. 简述
我们在用scrapy爬取数据时,首先就要明确我们要爬取什么数据scrapy提供了Item对象这种简单的容器,我们可以通过Item定义提取数据的格式,需要爬取哪些字段,其提供了类似于字典的API以及用于声明可用字段的简单语法。如下所示:
下面以爬取伯乐在线文章详情页为范例:http://blog.jobbole.com/all-posts/ 
通常我们为了简便直接使用$(),实际上,该函数省略了一个参数context,即$(selector)=$(selector,document).如果指定context,可以指定context为一个
                                    同步任务:在主线程队列,只有前一个任务完成后才会执行下一个任务异步任务:不进入主线程队列,而是进入异步队列,前一个任务完成与否不影响后一个任务的执行(不阻塞后续任务执行的任务)
同步任务的顺序是:按顺序执行,先执行定时器,后打印出,但是代码呈现的是,顺序是:先打印出111,定时器时间到,再执行定时器内的回调。下面都是一些常见的异步操作:fs 文件操作
数据库操作AJAX
3、🍋 Promise 的状态改变
Promise 对象有以下两个特点:对象的状态不受外界影响。Promise .
                                    Selection对象Selection对象一般由window.getSelection()或其他方法产生。它代表页面的文本选区,可能横跨多个元素。文本选区由用户拖拽鼠标经过文字而产生。如果你想了解关于其他容纳纯文本的表单元素的选区操作 
Selection对象所对应的是用户所选择的 ranges (区域),俗称拖蓝。默认情况下,该函数只针对一个区域,我们可以这样使用这个函数 
var selO
                                    我们使用下面的代码片段在本章来定义选择器不同的概念:My WebsiteScrapy Hello world   Link 1   Link 2   Link 3构造选择器可以通过text或TextResponse对象构造选择器类的实例。根据所提供的输入类型,选择器选择以下规则:from scrapy.selector import Selectorfrom scrapy.http im...
调试时常需要从text解析数据,使用方法如下:
from scrapy.selector import Selector
page_data = Selector(text=’’,type=’html/xm...
                                    这里没有在 Scrapy 框架运行,而是把 ScrapySelector 单独拿出来使用了,构建的时候传入text 参数,就生成了一个Selector选择器对象,然后就可以像Scrapy的解析方式一样,调用xpath、css等方法来提取数据了。由于Selector 主要是与Scrapy结合使用,如 Scrapy的回调函数的参数response 直接调用 xpath或者 css 方法来提取数据,所以在这里我们借助 Scrapy shell 来模拟Scrapy 请求的过程,讲解相关的提取方法。
                                    这个对象在帮助文档上并没有,但是这个对象确是整个DOM操作的核心类,工具函数$$,其实就是调用这个类的方法:function $$() {return Selector.findChildElements(document, $A(arguments));}  这个类可以分成三个部分:第一个部分就是根据不同的浏览器,判断使用什么DOM操作方法。其操作IE就是用普通的getEl
&lt;p id='test'&gt;hello&lt;b&gt;world!&lt;/b&gt;&lt;/p&gt;
我要的提取结果是:world!(假设world是很多标签组合的文本)
这里就需要注意text()的使用了:
首先设置sel = Selector(text=doc, type='html')
如果text(...
//或者 document.getSelection();
Selection 对象表示用户选择的文本范围或插入符号的当前位置。它代表页面的文本选区,可能横跨多个元素。文本选区由用户拖拽鼠标经过文字而产生。
锚点(anchor):锚指的是一个选区的起始点(不同于HTML的锚点链接)...
                                    当抓取网页时,最常见的任务是从HTML源码提取数据,用Beautiful Soup或lxml都可以。Beautiful Soup是基于HTML代码的结构来构造一个Python对象,对不良标记的处理也很合理,缺点就是慢。而lxml是基于ElementTree(不是Python标准库的一部分)的Python化的XML解析库,也可以解析HTML。
Scrapy提取数据的机制被称为选择器(Se...
                                    多线程之NSOperation对象   NSOperation类用法是用来封装执行的任务,而一个operation对象指的就是operation的一个具体的实例.NSOperation本身是一个抽象类,在使用的时候我们只能自定子类或者使用系统提供的NSInvocationOperation和NSBlockOperation类型.
   NSInvocationOperation是通过指定object