美文网首页
程序员用一个爬虫小案例,带你了解scarpy爬虫框架

程序员用一个爬虫小案例,带你了解scarpy爬虫框架

作者: Python末末 | 来源:发表于2018-07-31 18:41 被阅读134次

    内容

    Scrapy shell

    只要了解了Scrapy shell,就会发现它是开发和调试你的爬虫的一个非常宝贵的工具。

    配置shell

    可以通过scrapy设置配置为使用中的任何一个 ipython,bpython或标准python外壳,安装无论哪个。这是通过设置SCRAPY_PYTHON_SHELL环境变量来完成的; 或通过在scrapy.cfg中定义它:

    启动shell

    使用shell命令,可以启动Scrapy shell,:

    其中,是您要抓取的网址。

    shell也适用于本地文件。如果你想玩一个网页的本地副本,这可以很方便。shell了解本地文件的以下语法:

    注意

    当使用相对文件路径时,是显式的,并在它们前面./(或../相关时)。 将不会像一个人所期望的那样工作(这是设计,而不是一个错误)。scrapy shell index.html

    因为shell喜欢文件URI上的HTTP URL,并且index.html在语法上类似example.com, shell会将其视为index.html域名并触发DNS查找错误:

    shell将不会预先测试index.html 当前目录中是否存在调用的文件。

    使用shell

    Scrapy shell只是一个普通的Python控制台,为方便起见,它提供了一些额外的快捷方式功能。

    可用快捷键

    可用Scrapy对象

    Scrapy shell自动从下载的页面创建一些方便的对象,如Response对象和 Selector对象(对于HTML和XML内容)。

    这些对象是:

    shell会话的示例

    下面是一个典型的shell会话示例,我们首先抓取 http://scrapy.org页面,然后继续抓取https://reddit.com 页面。最后,我们将(Reddit)请求方法修改为POST并重新获取它获取错误。我们通过在Windows中键入Ctrl-D(在Unix系统中)或Ctrl-Z结束会话。

    然后,shell获取URL(使用Scrapy下载器)并打印可用对象和有用的快捷方式列表(您会注意到这些行都以[s]前缀开头):

    之后,我们可以开始使用对象:

    从爬虫调用shell检查响应

    在检查爬虫的某一点被处理的响应,如果只检查你期望的响应到达那里。

    这可以通过使用该scrapy.shell.inspect_response功能来实现。

    给大家打一个怎么从爬虫调用它的例子:

    当你运行爬虫,你会得到类似的东西:

    再检查提取代码是否正常工作:

    可以在Web浏览器中打开响应,看一下有没有响应:

    最后,您按Ctrl-D(或Windows中的Ctrl-Z)退出外壳并继续抓取:

    当不能使用fetch此处的快捷方式,因为Scrapy引擎被shell阻止。在离开shell之后,爬虫会继续爬到它停止的地方,如上图所示。

    相关文章

      网友评论

          本文标题:程序员用一个爬虫小案例,带你了解scarpy爬虫框架

          本文链接:https://www.haomeiwen.com/subject/hfzhvftx.html