一、Scrapy shell简介
Scrapy终端是一个交互终端,供您在未启动spider的情况下尝试及调试您的爬取代码。 其本意是用来测试提取数据的代码,不过您可以将其作为正常的Python终端,在上面测试任何的Python代码。
该终端是用来测试XPath或CSS表达式,查看他们的工作方式及从爬取的网页中提取的数据。 在编写您的spider时,该终端提供了交互性测试您的表达式代码的功能,免去了每次修改后运行spider的麻烦。
一旦熟悉了Scrapy终端后,您会发现其在开发和调试spider时发挥的巨大作用。
如果您安装了 IPython ,Scrapy终端将使用 IPython (替代标准Python终端)。 IPython 终端与其他相比更为强大,提供智能的自动补全,高亮输出,及其他特性。
二、启动终端
scrapy shell
三、使用终端
response对象
- response.body
- 获取响应到二进制类型 response.text
- 获取响应的文本 response.url
- 获取响应的url response.status
- 获取响应的状态码
response的解析
- response.xpath()
- 使用xpath路径查询特定元素,返回一个selector对象 response.css()
- 使用css_selector查询元素,返回一个selector对象
selector对象
- extract()
- 使用xpath请求到的对象是一个selector对象,需要进一步使用extract()方法拆包,转换为unicode字符串 extract_first()
- 返回第一个解析到的值,如果列表为空,此种方法也不会报错,会返回一个空值 xpath()
- selector对象也支持xpath查询 css()
- selector对象也支持css语句查询
item对象
- dict(item_obj)
- 可以使用dict方法直接将item对象转换成字典对象 item(dict_obj)
- 也可以使用字典对象创建一个Item对象