前几天给大家分享了关于Scrapy爬虫项目运行和调试的小技巧上篇,没来得及上车的小伙伴可以戳超链接看一下。今天小编继续沿着上篇的思路往下延伸,给大家分享更为实用的Scrapy项目调试技巧。

三、设置网站robots.txt规则为False

一般的,我们在运用Scrapy框架抓取数据之前,需要提前到settings.py文件中,将“ROBOTSTXT_OBEY = True”改为ROBOTSTXT_OBEY = False。

在未改动之后settings.py文件中默认爬虫是遵守网站的robots.txt规则的,如下图所示。

 

如果遵守robots.txt规则的话,那么爬取的结果会自动过滤掉很多我们想要的目标信息,因此有必要将该参数设置为False,如下图所示。

 

设置好robots.txt规则之后,我们便可以抓到更多网页的信息。

四、利用Scrapy shell进行调试

通常我们要运行Scrapy爬虫程序的时候会在命令行中输入“scrapy crawl crawler_name”,细心的小伙伴应该知道上篇文章中创建的main.py文件也是可以提高调试效率的,不过这两种方法都是需要从头到尾运行Scrapy爬虫项目,每次都需要请求一次URL,效率十分低。运行过Scrapy爬虫项目的小伙伴都知道Scrapy运行的时候相对较慢,有时候因为网速不稳定,根部就无法动弹。针对每次都需要运行Scrapy爬虫的问题,这里介绍Scrapy shell调试方法给大家,可以事半功倍噢。

Scrapy给我们提供了一种shell模式,让我们可以在shell脚本之下获取整个URL对应的网页源码。在命令行中进行运行,其语法命令是“scrapy shell URL”,URL是指你需要抓取的网页网址或者链接,如下图所示。

 

该命令代表的意思是对该URL进行调试,当命令执行之后,我们就已经获取到了该URL所对应的网页内容,之后我们就可以在该shell下进行调试,再也不用每次都执行Scrapy爬虫程序,发起URL请求了。

通过shell脚本这种方式可以极大的提高调试的效率,具体的调试方法同爬虫主体文件中的表达式语法一致。举个栗子,如下图所示。

 

将两个Xpath表达式所对应的选择器放到scrapy shell调试的脚本下,我们可以很清楚的看到提取的目标信息,而且省去了每次运行Scrapy爬虫程序的重复步骤,提高了开发效率。这种方式在Scrapy爬虫过程中十分常用,而且也十分的实用,希望小伙伴们都可以掌握,并且积极主动的为自己所用。

关于Scrapy爬虫项目运行和调试的部分小技巧先分享到这里,尤其是Debug调试和Scrapy shell调试极为常用,希望小伙伴们可以多多利用起来,让其为自己的项目服务,可以事半功倍噢~~

 

关于Scrapy爬虫项目运行和调试的小技巧(下篇)的更多相关文章

  1. 关于Scrapy爬虫项目运行和调试的小技巧(上篇)

    扫除运行Scrapy爬虫程序的bug之后,现在便可以开始进行编写爬虫逻辑了.在正式开始爬虫编写之前,在这里介绍四种小技巧,可以方便我们操纵和调试爬虫. 一.建立main.py文件,直接在Pycharm ...

  2. 在Pycharm中运行Scrapy爬虫项目的基本操作

    目标在Win7上建立一个Scrapy爬虫项目,以及对其进行基本操作.运行环境:电脑上已经安装了python(环境变量path已经设置好), 以及scrapy模块,IDE为Pycharm .操作如下: ...

  3. Scrapy(爬虫)基本运行机制

    Scrapy(爬虫)基本运行机制

  4. gdb调试运行时的程序小技巧

    使用gdb调试运行时的程序小技巧 标签: 未分类 gdb pstack | 发表时间:2012-10-15 04:32 | 作者:士豪 分享到: 出处:http://rdc.taobao.com/bl ...

  5. 【Scrapy(四)】scrapy 分页爬取以及xapth使用小技巧

    scrapy 分页爬取以及xapth使用小技巧 这里以爬取www.javaquan.com为例: 1.构建出下一页的url: 很显然通过dom树,可以发现下一页所在的a标签   2.使用scrapy的 ...

  6. python3 scrapy爬虫项目的诞生

    前提安装好scrapy模块最好 requests和bs4模块都安装好 可以概括为五个步骤 步骤一:新建一个项目 无论你用windows也好,linux也罢,在cmd或者终端 切换到目标文件夹,然后输入 ...

  7. Scrapy 爬虫项目框架

    1. Scrapy 简介 2. Scrapy 项目开发介绍 3. Scrapy 项目代码示例 3.1 setting.py:爬虫基本配置 3.2 items.py:定义您想抓取的数据 3.3 spid ...

  8. Python+Selenium进行UI自动化测试项目中,常用的小技巧4:日志打印,longging模块(控制台和文件同时输出)

    在前段时间,为了给项目中加入日志功能,就想到了 logging 模块,百度logging一大推,都是各种复制的,并没有找到自己想要的结果:我的目的很简单,就是:在把日志写入文件的同时在控制台输出,更加 ...

  9. 谷歌(Chrome)浏览器调试JavaScript小技巧

    谷歌浏览器不仅仅可以用来上网,对于开发人员来说,它更像是一款强大的开发辅助工具. 工欲善其事必先利其器,接下来笔者给大家分享一些Chrome的使用方法. 假如读者了解如何在Chrome中添加JavaS ...

随机推荐

  1. 动画view

    1:view动画 @1:xml中 alph:渐变透明度动画效果 scale:渐变尺寸伸缩动画效果 translate:画面转换位置移动动画效果 rootate:画面转移旋转动画效果 @2:JavaCo ...

  2. 十款APP开发框架

    对于大部分Web开发人员,HTML.CSS和 Java是他们最熟练的开发技能.然而,开发一个原生的移动App,对他们来说却是完全陌生的领域.因为开发Android,iOS 或 Windows Phon ...

  3. Image解码

    Image解码 可以看到从CFDataRef直到创建出UIImage,都没有调用过对图像解码的函数,只读取了一些图像基础数据和元数据. Image解码发生在什么时候?在ImageIO/CGImageS ...

  4. iOS保持流畅有哪些秘诀? 除了黑科技GPU还有这些重要原因 期待安卓8.0流畅度逆袭

    经常有人提起iPhone使用起来要比Android手机流畅,现在谈谈为什么iOS使用中会让人觉得更加流畅一些.一方面iPhone的顶级硬件为iOS的流畅打好了基础,另一方面,专一定制的系统是保证体验的 ...

  5. 路飞学城Python-Day37(practise)

    #1.自行创建测试数据 create database homework; use homework; # 年级表->老师表->课程表->班级表->学生表->成绩表-&g ...

  6. PAT 天梯赛练习集 L2-022. 重排链表

    题目链接:https://www.patest.cn/contests/gplt/L2-022 给定一个单链表 L1→L2→...→Ln-1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln-1→L ...

  7. HDU-2955 Robberies 浮点数01背包 自变量和因变量位置互换

    题目链接:https://cn.vjudge.net/problem/HDU-2955 题意 突然想找几个银行抢钱. 给出各银行的钱数和被抓的概率,以及能容忍的最大被抓概率. 问他最多能抢到多少钱? ...

  8. BZOJ 3524 [POI2014]KUR-Couriers (主席树)

    题目大意:给你一个序列,求某个区间出现次数大于一半的数是什么 主席树裸题,刷刷水题提升自信= = #include <cstdio> #include <cstring> #i ...

  9. df与du查看磁盘空间使用不一致的解决方法

    近一段时间,某台服务器的磁盘空间使用不太正常,与其他的服务器相比,严重超出磁盘空间使用 使用df与du相关命令查看,具体结果如下: du -hFilesystem       Size  Used A ...

  10. ansible组件 Ad-Hoc

    ad hoc ---临时的,在ansible里需要快速执行,并不用保存命令的执行方式 简单命令 playbook 复杂命令     EXAMPLES: - name: install the late ...