1.介绍
Scrapy终端,是一个交互终端,在未启动spider的情况下尝试及调试爬取代码。 其本意是用来测试提取数据的代码,不过可以将其作为正常的Python终端,在上面测试任何的Python代码。该终端是用来测试XPath或CSS表达式,查看他们的工作方式及从爬取的网页中提取的数据。 在编写spider时,该终端提供了交互性测试表达式代码的功能,免去了每次修改后运行spider的麻烦。
2.安装
终端输入:pip install ipython
如果已经安装了 IPython ,Scrapy终端将使用 IPython (替代标准Python终端)。 IPython 终端与其他相比更为强大,提供智能的自动补全,高亮输出,及其他特性。使用:
直接在终端上出入 scrapy shell 网页地址
3.语法
(1)response对象:
- response.body
- response.text
- response.url
- response.status
(2)response的解析:
- response.xpath() (常用)使用xpath路径查询特定元素,返回一个selector列表对象
- response.css() 使用css_selector查询元素,返回一个selector列表对象
- 获取内容 :response.css('#su::text').extract_first()
- 获取属性 :response.css('#su::attr(“value”)').extract_first()
(3)selector对象(通过xpath方法调用返回的是seletor列表)
- extract()
- 提取selector对象的值
- 如果提取不到值 那么会报错
- 使用xpath请求到的对象是一个selector对象,需要进一步使用extract()方法拆
- 包,转换为unicode字符串
- extract_first()
- 提取seletor列表中的第一个值
- 如果提取不到值 会返回一个空值
- 返回第一个解析到的值,如果列表为空,此种方法也不会报错,会返回一个空值
- xpath()
- css()
注意:每一个selector对象可以再次的去使用xpath或者css方法