scrapy没有运行结果_关于Scrapy爬虫项目运行和调试的小技巧(下篇)

1f7006030b37896a259335e5db12f3b8.png

前几天给大家分享了关于Scrapy爬虫项目运行和调试的小技巧上篇,没来得及上车的小伙伴可以戳超链接看一下。今天小编继续沿着上篇的思路往下延伸,给大家分享更为实用的Scrapy项目调试技巧。
三、设置网站robots.txt规则为False
一般的,我们在运用Scrapy框架抓取数据之前,需要提前到settings.py文件中,将“ROBOTSTXT_OBEY = True”改为ROBOTSTXT_OBEY = False。
在未改动之后settings.py文件中默认爬虫是遵守网站的robots.txt规则的,如下图所示。

174d925f887b3748d1cbd5765539505d.png


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

0b17e28875da2cd9c122ba90efb58f37.png


设置好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是指你需要抓取的网页网址或者链接,如下图所示。

ef65ea7757ed2bebd7970090d9789167.png


该命令代表的意思是对该URL进行调试,当命令执行之后,我们就已经获取到了该URL所对应的网页内容,之后我们就可以在该shell下进行调试,再也不用每次都执行Scrapy爬虫程序,发起URL请求了。
通过shell脚本这种方式可以极大的提高调试的效率,具体的调试方法同爬虫主体文件中的表达式语法一致。举个栗子,如下图所示。

ef8ce4201a21f38e0a7c9d38a6992ac0.png


将两个Xpath表达式所对应的选择器放到scrapy shell调试的脚本下,我们可以很清楚的看到提取的目标信息,而且省去了每次运行Scrapy爬虫程序的重复步骤,提高了开发效率。这种方式在Scrapy爬虫过程中十分常用,而且也十分的实用,希望小伙伴们都可以掌握,并且积极主动的为自己所用。
关于Scrapy爬虫项目运行和调试的部分小技巧先分享到这里,尤其是Debug调试和Scrapy shell调试极为常用,希望小伙伴们可以多多利用起来,让其为自己的项目服务,可以事半功倍噢~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyui datagrid oncheck 修改行样式_100 种 PPT 图表样式送给你

你好,这里是诺灰屋我是诺灰距离上一篇推文,已有近一个月的时间没有给大家写推送了。这期间,我一直在进行数据图表方面知识的网络调研。甚至于在知网上找了几篇论文来看,当然,内容很枯燥,不实用。同时&#…

系统如何启动数据库服务器,怎么启动sql数据库服务器

怎么启动sql数据库服务器 内容精选换一换PostgreSQL支持逻辑备份。您可使用pg_dump逻辑备份功能,导出备份文件,再通过psql导入到RDS中,实现将PostgreSQL的数据导入到云数据库RDS中。云数据库RDS服务支持开启公网访问功能,通过弹性…

富士康服务器主板X58维修,富士康X58 Blood Rage主板BIOS预览

富士康X58主板Blood Rage在软硬件方面都已经设计完成,下边就来看看BIOS设定部分。通用条目这里暂且略过,只看看富士康独特的“Quantum BIOS”部分,有关系统各部件的条件以及超频都要在这儿完成。Quantum BIOS主界面:分为处理器功能…

amd cpu不能在cmd环境下运行java代码_00 开发环境搭建

我们来着手在本地计算机环境安装 TensorFlow 最新版框架。TensorFlow 框架支持多种常见的操作系统,如 Windows 10、Ubuntu 18.04、Mac OS 等等,同时也支持运行在 NVIDIA 显卡上的 GPU 版本和仅适用 CPU 完成计算的 CPU 版本。我们以最为常见 Windows 10 …

更新无限无线连接更新服务器,02-H3C WBC560多业务无线控制器软件升级操作指导...

本文中的绿洲平台指的是WBC560多业务无线控制器中的本地绿洲。1.1.1 软件升级方式简介AC支持通过命令行进行软件升级和通过Web页面进行软件升级,命令行升级方式只能通过以太网口telnet到AC进行升级,无法通过HDM进行升级。升级方式说明需要重启AC来实现A…

pythonista_Pythonista20190325伤不起

图片发自简书App print("You enter a dark room with two doors. Do you go through door #1 or door #2?") door input("> ") if door "1": print("Theres a giant bear here eating a cheese cake,What do you do?") print(&…

nfc卡模式与标准模式_渠道如何标准化管理,建立新的销售模式,提升业绩完成率...

请您关注,转发,点赞!转化能力持续为您创作实用有效的营销工具,管理工具,计划表格,如何完成业绩方法,战略如何规划,如何总结和规划等实用文件,提高职场营销人的营销能力和…

两个矩阵是否相交的算法_算法血拼:Google+百度+Alibaba+字节+Tencent+网易+360+拼夕夕...

最热的三伏天来了,相信有许多小伙伴们都已马不停蹄的在准备各大厂的秋招提前批了吧,不知算法与数据结构会不会成为你的坎?恰好,我这两天花了点时间,整理了些各大厂(Google百度Alibaba字节Tencent网易360拼夕夕美团小米…

arduino esp8266_你还用Arduino?上PlatformIO开发Esp、AVR、STM32,十分钟亲测ESP8266

简介对单片机最早的认识是大一的时候刷到的C51单片机,那时候玩了一阵子感觉可玩性不高,后来有了解到Arduino,买了两Uno回来用Arduino开发感觉可玩性和快速开发都比C51强多了,再后来了解了NodeMCU这玩意,又入手了Esp826…

java jpeg压缩解码_JPEG图像压缩原理简介

JPEG(发音:[ˈdʒeɪpɛg])是一种针对照片视频而广泛使用的有损压缩标准方法。这个名称代表 Joint Photographic Experts Group(联合图像专家小组)。联合图像专家小组1992年发布了JPEG的标准而在1994年获得了ISO 10918-1的认定。JPEG与视频音频压缩标准的MPEG(Movin…

bootstrap网页模板源码_Go Web 编程--超详细的模板库应用指南

如果你有过Web编程的经验,那么或多或少都听说过或者使用过模板。简而言之,模板是可用于创建动态内容的文本文件。例如,你有一个网站导航栏的模板,其中动态内容的一部分可能是根据当前用户是否登录显示登录还是退出按钮。Go提供了两…

python matpoltlib绘制动态图_使用Python、Geopandas和Matplotlib制作gif动态

原标题:使用Python、Geopandas和Matplotlib制作gif动态 不需要Photoshop:仅使用Python和命令行制作动画图表。作为一种编程语言,Python非常灵活。这使得有时可以在几行代码中进行大量不同的可视化成为可能。但是现在有了很多不同的图表网站和…

dst发育筛查有意义吗_儿童视力筛查,都筛些啥?

感谢眼科小伙伴们的早出晚归辛勤忙碌,感谢幼儿园、学校及小朋友们的积极配合,本学期的校园视力筛查也已进入尾声。相信爸爸妈妈们都已拿到了这样的筛查结果单:(学龄前儿童仅行电脑验光筛查,学龄儿童还需行视力检查&…

java 堆_JAVA学习笔记 07——堆、栈和垃圾回收机制

程序执行的内存分析过程:虚拟机栈(简称:栈)的特点如下:1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)。2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参…

dubbo 自定义路由_Dubbo分层架构概述

本节我们从整体上来看看 Dubbo 的分层架构设计,架构分层是一个比较经典的模式,比如网络中的7层协议,每层执行固定的功能,上层依赖下层提供的功能,下层对上层提供功能,下层的改变对上层不可见,并…

python类方法继承_python类的继承

一、概述 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类…

添加编译宏_软件开发——编译链接

对于平常的应用程序开发,我们很少需要关注编译和链接过程。我们平常Xcode开发就是集成的的开发环境(IDE),这样的IDE一般都将编译和链接的过程一步完成,通常将这种编译和链接合并在一起的过程称为构建,即使使用命令行来编译一个源代码文件,简单…

shell打开wifi命令_远程执行命令的填坑记录

前言本文主要记录 bash 四种模式的细节,以便于遇到问题时查阅。远程执行出错了最近使用 ansible 比较多,在某次使用 shell 模块远程执行命令的时候老是报 ‘command not found’。但是手动登录到远端机器执行命令是成功的,于是开始思考里面的…

nodejs express use 传值_再也不怕面试官问你express和koa的区别了

前言用了那么多年的express.js,终于有时间来深入学习express,然后顺便再和koa2的实现方式对比一下。老实说,还没看express.js源码之前,一直觉得express.js还是很不错的,无论从api设计,还是使用上都是可以的…

没有工作经验找it_校招和社招有什么区别?没有工作经验,如何找工作?

我们的招聘一般分为社招和校招。社招就是社会上招聘,绝大多数都要有相关的工作经验。而校招则是针对在校大学生的,所以应届毕业生的身份很重要,失去了这个身份,就要进入社招的渠道,面临的压力和要求都要高得多。那么&a…