在使用 scrapy 来爬取网页的时候,我们难免会使用到调试功能,下面介绍两种调试方法:

1.终端使用

scrapy shell exampleurl

exampleurl 为你要爬取网站的 url 。

开启调试界面后终端显示如下(类似 IPython):

接下来就可以在命令行中输入各种方法来获取网页内容查看实时效果了。如通过 response.css() 或 response.xpath() 方法来获取网页元素(如标题、文章内容等),实时打印显示在命令行中进行调试。

按 ctr + z 退出调试。

2. 平时可能我们写爬虫代码用 pycharm 比较多,如果能在 pycharm 实时调试再好不过。介绍一下在 pycharm 调试 scrapy 框架下的代码。

在 scrapy 生成的爬虫项目下新建一个 main.py 文件,写入下列内容:

#!/usr/bin/env python
#-*- coding:utf-8 -*- from scrapy.cmdline import execute
import os
import sys #添加当前项目的绝对地址
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
#执行 scrapy 内置的函数方法execute, 使用 crawl 爬取并调试,最后一个参数jobbole 是我的爬虫文件名
execute(['scrapy', 'crawl', 'jobbole'])

接下来在爬虫文件中设置断点,回到 main.py 文件中右键点击 debug main.py 就可以进行调试了。

比如我自己的 jobbole.py 设置断点后回到 main.py 进行 debug,会自动跳到设置断点处:

按 F6会继续执行断点后的下一行代码,按 F8会自动跳到该文件设置的下一个断点处。

这里采用 eclipse 的按键布局,可以在偏好设置 keymap下更改:

PS:使用 scrapy 创建项目后生产的相同子文件名,因为 pycharm 不会将当前文件目录自动加入自己的 sourse_path ,所以我们最好自己先手动导入:右键make_directory as-->sources path将当前工作的文件夹加入source_path。否则后续引入有些包可能 pycharm 会报错。

scrapy 调试功能的更多相关文章

  1. Intellij IDEA调试功能使用总结

    Intellij IDEA调试功能使用总结 这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码行,在行号的 ...

  2. vs2012远程调试功能的改进

    不知道大家有没有遇到过这种情况,刚开发完的程序,明明在本机能够好好的运行,可是部署到服务器过分发给用户时,总是出现莫名其妙的错误. 一时半会又看不出问题来,怎么办呢?难道只能在服务器或是客户电脑上装一 ...

  3. Android Studio调试功能使用总结【转】

    Android Studio调试功能使用总结[转]   这段时间一直在使用Intellij IDEA, 今天把调试区工具的使用方法记录于此. 先编译好要调试的程序. 1.设置断点 选定要设置断点的代码 ...

  4. CodeBlocks的汉化、主题美化及其调试功能的实现

    破事水 最近由于Cfree5经常崩溃+调试语句运行速度比较慢,想尝试一下另一个听说很好用的IDE Code::Blocks. 先上官网的安装包(自带mingw,安装完可以直接用,适用于windows系 ...

  5. [转载]Unity3D的断点调试功能

    断点调试功能可谓是程序员必备的功能了.Unity3D支持编写js和c#脚本,但很多人可能不知道,其实Unity3D也能对程序进行断点调试的.不过这个断点调试功能只限于使用Unity3D自带的MonoD ...

  6. VC使用CRT调试功能来检测内存泄漏

    信息来源:csdn     C/C++ 编程语言的最强大功能之一便是其动态分配和释放内存,但是中国有句古话:“最大的长处也可能成为最大的弱点”,那么 C/C++ 应用程序正好印证了这句话.在 C/C+ ...

  7. KDB支持单步调试功能(ARM架构)

    0    实践发现KDB不支持step调试功能 (本文针对的是arm CotexA9架构,各种架构的实现方式不一样,    X86的好像已经支持,不过本人没有验证过) 1    首先看下要调试的代码段 ...

  8. Python开发环境Wing IDE使用教程:部分调试功能介绍

    下面是用户应该了解的Wing IDE的其它一些调试功能: Main Debug File—用户可以指定项目中的一个文件作为调试的主入口点.当完成这个设置之后,调试总是从这个文件开始,除非用户使用Deb ...

  9. 在ubuntu下把php的网页调试功能打开

    我这儿的环境是 Ubuntu 14.04  + Lighttpd + PHP5.5 默认情况下php的网页调试功能是不打开的,当PHP解析到一个错误的语法时会直接输出为空白. 我在网上找一许多文章,说 ...

随机推荐

  1. 初识 Julia

    Ubuntu 下安装 Julia 环境 sch01ar@ubuntu:~$ sudo apt install julia 安装完成后打开 Julia 的交互式会话 sch01ar@ubuntu:~$ ...

  2. linux中keepalived实现nginx高可用配置

    linux中keepalived实现nginx高可用配置 安装keepalived 运行如下命令即可 tar -zxvf keepalived-2.0.8.tar.gz -C /usr/src cd ...

  3. hive函数

    内置函数 测试各种内置函数的快捷方法: 1.创建一个dual表 create table dual(id string); 2.load一个文件(一行,一个空格)到dual表 3.select sub ...

  4. Java微信公众平台开发(九)--关键字回复以及客服接口实现(该公众号暂时无法提供服务解决方案)

    转自:http://www.cuiyongzhi.com/post/47.html 我们在微信公众号的后台可以发现微信给我们制定了两种模式,一种是开发者模式(也就是我们一直在做的开发),还有一种模式是 ...

  5. ffmpeg个人翻译文档1-8<转>

    [个人翻译]ffmpeg文档1 (2008-08-26 09:39:15) 转载 标签: 杂谈 分类: 翻译文档 指导1:制作屏幕录像 源代码:tutorial01.c 概要   电影文件有很多基本的 ...

  6. less使用变量实现Url的前缀

    @url-prefix: "../../../../../Skin/Template/Default"; .test { background: url("@{url-p ...

  7. js确定来源页然后跳转

    <script type="text/javascript"> function Navigate() { if(document.referrer == 'http: ...

  8. day18-事务与连接池 2.事务介绍与mysql下事务操作

    这么玩 真的变了吗?把cmd窗口关闭了看看. 就是固定的套路才行:start transaction->执行SQL->rollback; 执行每一条SQL之前都要start transac ...

  9. HtmlHelper扩展

    扩展 HtmlHelper类 public static class MyHtmlHelper { //扩展方法 //静态类,静态方法,this关键字 //调用方法<%=Html.MyLabel ...

  10. linux上搭建图片服务器

    之前写过一个搭建图片服务器的随笔:https://www.cnblogs.com/xujingyang/p/7163290.html   ,现在回头看看,我去,感觉写的好乱,现在再整一个吧.o(╯□╰ ...