scrapy调试工具:scrapy shell使用方法

时间:2018-01-02 17:27作者:scrapy中文网阅读:


上面的栗子,我们只是囫囵吞枣的把页面下载下来,scrapy表示强烈不服,因为下载个页面并不能显示scrapy的强大

scrapy中文文档

是时候显示scrapy的肌肉了!scrapy真正的强大是表现在它提取数据的能力上,本文档我们也是走马观花的介绍一下scrapy提取数据的几种方式:CSS、XPATH、RE(正则),为马是走马观花呢?因为后面还有很大的篇幅细说他们,这里只是为了让你概括的认识scrapy,但要认识它,又不能不提及它的数据提取能力,所以在这里概括一下,后面它还会再回来!基于这样的现实,也对读者木有太高的要求,略懂即可!好了,接下来我们开始了:

scrapy中文文档

那开始之前,我们还需要磨把刀,神马刀呢?也就是:验证scrapy到底有木有提取到数据的工具,其实说白了就是scrapy调试工具,如果木有它你根本不知道你写的规则到底有木有提取到数据,所以这个工具是个:刚需!其实也很简单,就是在命令行输入下面一行代码而已:

scrapy shell http://lab.scrapyd.cn

scrapy shell 固定格式,后面的话跟的是你要调试的页面,如果是百度就:

scrapy shell http://www.baidu.com
如果是淘宝就:
scrapy shell http://www.taobao.com
就这样一个格式,其实这段代码就是一个下载的过程,一执行这么一段代码scrapy就立马把我们相应链接的相应页面给拿到了,那接下来就可以任你处置了

scrapy中文文档

你看,我刚已输入:scrapy shell http://lab.scrapyd.cn命令行立马就显示为:

2017-12-15 09:48:38 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2017-12-15 09:48:38 [scrapy.extensions.telnet] DEBUG: Telnet console listening o
n 127.0.0.1:6023
2017-12-15 09:48:38 [scrapy.core.engine] INFO: Spider opened
2017-12-15 09:48:38 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://lab.sc
rapyd.cn> (referer: None)
2017-12-15 09:48:39 [traitlets] DEBUG: Using default logger
2017-12-15 09:48:39 [traitlets] DEBUG: Using default logger
[s] Available Scrapy objects:
[s]   scrapy     scrapy module (contains scrapy.Request, scrapy.Selector, etc)
[s]   crawler    <scrapy.crawler.Crawler object at 0x0000000004ED2940>
[s]   item       {}
[s]   request    <GET http://lab.scrapyd.cn>
[s]   response   <200 http://lab.scrapyd.cn>
[s]   settings   <scrapy.settings.Settings object at 0x0000000004FF8F98>
[s]   spider     <DefaultSpider 'default' at 0x525afd0>
[s] Useful shortcuts:
[s]   fetch(url[, redirect=True]) Fetch URL and update local objects (by default
, redirects are followed)
[s]   fetch(req)                  Fetch a scrapy.Request and update local object
s
[s]   shelp()           Shell help (print this help)
[s]   view(response)    View response in a browser
In [1]:

比如我们想提取    http://lab.scrapyd.cn   的  title,我们可以在  In[1]:  后面输入:response.css('title')   ,然后回车, 立马就得到如下结果:

>>> response.css('title')

[<Selector xpath='descendant-or-self::title' data='<title>爬虫实验室 - S
CRAPY中文网提供</title>'>]
似不似很直观的验证了你提取的数据对不对?如果正确了,我们再把上面的代码放到我们蜘蛛里面,那这样就会正确的得到你想要的数据,而不会出现意外了,这就是scrapy调试工具的应用!

评论去哪里了?

由于搜狐畅言广告越来越丧心病狂,用它一个评论,半个网页都被它占领,感觉已经把灵魂出卖给了魔鬼!SO,为了息众怒小编只能暂且关闭评论,若您实在想找我说话,欢迎关注公众号,给我留言,么么哒!