scrapy 调试功能

  在使用 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 会报错。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Debian 8上安装Munin监视工具

Munin是一个系统,网络和基础设施监控应用程序,通过Web浏览器以图形形式提供信息。它是围绕客户端 - 服务器架构设计的,可以配置为监控它所安装的机器(Mun...

6800
来自专栏Lambda

Ubuntu下SVN安装和配置

Ubuntu下SVN安装和配置 一、SVN安装 1.安装包 1.$ sudo apt-get install subversion 2.创建项目目...

34070
来自专栏陈树义

MySQL用户管理:添加用户、授权、删除用户

添加用户 以root用户登录数据库,运行以下命令: create user zhangsan identified by 'zhangsan'; 上面的命令创...

49650
来自专栏机器学习实践二三事

VirtualBox安装CentOS联网问题

最近玩Hadoop需要几个虚拟机构成集群,就在VirtualBox上安装了CentOS,联网问题就出现了,具体就是两个: 主机与虚拟机的联通 虚拟机的上网问题 ...

20380
来自专栏Laoqi's Linux运维专列

看懂FTP的主动和被动模式

44490
来自专栏小樱的经验随笔

Linux目录结构

Linux 目录结构 装完Linux,首先需要弄清Linux 标准目录结构 ? / root —?启动Linux时使用的一些核心文件。如操作系统内核、引导程序G...

48160
来自专栏云计算教程系列

如何在Debian 9上安装Linux,Apache,MariaDB,PHP(LAMP)堆栈

“LAMP”堆栈是一组开源软件,通常安装在一起以使服务器能够托管动态网站和Web应用程序。这个术语实际上是一个缩写,代表L inux操作系统,带有A pache...

43830
来自专栏古时的风筝

django开发个人简易Blog——构建项目结构

开发之前第一步,就是构造整个的项目结构。这就好比作一幅画,第一步就是描绘轮廓,有了轮廓,剩下的就是慢慢的填充细节。项目结构规划如下图: ? 项目结构描述: 本项...

27250
来自专栏IT杂记

Windows下jps, jconsole无法查看本地java进程问题解决

先通过本地java代码运行: System.out.println(System.getProperties()); 查看属性java.io.tmpdir=C:...

32060
来自专栏云计算教程系列

如何在Debian 8上用mod_proxy将Apache设置为反向代理

reverse proxy(反向代理)是一种代理服务器,它接收HTTP(S)请求并将它们透明地分发到一个或多个后端服务器。反向代理非常实用,因为许多现代Web应...

12930

扫码关注云+社区

领取腾讯云代金券