Scrapy Shell描述
Scrapy shell可以用来搜刮无错误代码的数据,而不需要使用spider。Scrapy shell的主要目的是测试提取的代码、XPath或CSS表达式。它还有助于指定你要爬取数据的网页。
配置Shell
可以通过安装IPython(用于交互式计算)控制台来配置shell,它是一个强大的交互式shell,可以提供自动完成、彩色输出等。
如果你是在Unix平台上工作,那么最好安装IPython。如果IPython无法访问,你也可以使用bpython。
你可以通过设置名为SCRAPY_PYTHON_SHELL的环境变量或通过定义scrapy.cfg文件来配置shell,如下所示
启动Shell
可以用以下命令启动Scrapy shell —
url指的是需要爬取数据的URL。
使用Shell
shell提供了一些额外的快捷方式和Scrapy对象,如下表所示
可用的快捷键
Shell在项目中提供了以下可用的快捷方式—-
编号 | 快捷键 | 描述 |
---|---|---|
1 | shelp() | 它通过帮助选项提供了可用的对象和快捷方式 |
2 | fetch(request_or_url) | 它收集来自请求或URL的响应,相关对象将得到适当的更新 |
3 | view(response) | 你可以在本地浏览器中查看给定请求的响应以进行观察,为了正确显示外部链接,它在响应体中附加了一个基础标签 |
可用的Scrapy对象
Shell在项目中提供了以下可用的Scrapy对象—-。
编号 | 对象 | 描述 |
---|---|---|
1 | crawler | 它指定了当前的爬虫对象 |
2 | spider | 如果目前的URL没有Spider,那么它将通过定义新的Spider来处理这个URL或Spider对象 |
3 | request | 它指定了最后收集的页面的请求对象 |
4 | response | 它指定了最后收集的页面的响应对象 |
5 | settings | 它提供了当前的Scrapy设置 |
Shell会话示例
让我们尝试爬取scrapy.org网站,然后开始从reddit.com爬取所述的数据。
在继续前进之前,首先我们将启动shell,如下面的命令所示 —
Scrapy将显示可用的对象,同时使用上述URL —
接下来,从对象的工作开始,如下所示—
从Spider调用Shell来检查响应
你可以检查从Spider处理的响应,只有当你期望得到该响应时才可以。
例如–
如上面的代码所示,你可以从spiders中调用shell来检查响应,使用以下函数——。
现在运行Spider,你会得到以下屏幕 –
它的输出显示为
上面一行只显示了一个空白输出。现在你可以调用shell来检查响应,如下图所示
它显示的响应为