如何用 PyCharm 调试 scrapy 项目
原理:
首先 scrapy 命令其实就是一个python脚本,你可以使用 which scrapy 查看该脚本的内容:
from scrapy.cmdline import execute
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(execute())
而命令行运行scrapy项目的方式如下:
scrapy crawl dmoz #注意,其中的dmoz是项目目录下的spiders目录下的dmoz.py文件里的 name 属性(不是文件里面的类名,也不是文件名前缀),我的工程是: Dmoz/spiders/dmoz.py:
# -*- coding: utf-8 -*- import scrapy class DmozSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.kc0011.net/",
# "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
] def parse(self, response):
print(response.text)
根据这种运行方式,上面的运行可以用如下命令来代替:
python /home/hzh/.virtualenvs/env35/lib/python3.5/site-packages/scrapy/cmdline.py crawl dmoz
下面介绍用pycharm调试scrapy工程:
先用scrapy startproject Dmoz 创建一个scrapy工程,要在pycharm里调试该Dmoz工程:
1、先用pycharm直接打开Dmoz目录,这样就将该目录转换成了pycharm工程(其实就是创建了一个.idea目录)
2、在项目的Run/Debug Configuration里设置:
script: /home/hzh/.virtualenvs/env35/lib/python3.5/site-packages/scrapy/cmdline.py
script parameters: crawl dmoz
working directory: /home/hzh/delll/scrapy/Dmoz
然后勾选: Show command line afterwards 选项
这样就可以调试了。
如何用 PyCharm 调试 scrapy 项目的更多相关文章
- pycharm调试scrapy
pycharm调试scrapy 创建一个run.py文件作为调试入口 run.py中,name是要调试的爬虫的名字(注意,是爬虫类中的name,而不是爬虫类所在文件的名字) 拼接爬虫运行的命令,然后用 ...
- pycharm下运行和调试scrapy项目
1. 新建项目 默认在本地已经新建了一个scrapy爬虫项目 2. 打开项目 点击open à 选择刚刚那个本地的scrapy项目meijutt100 3. 项目结构 各个py文件的作用不作介绍,不懂 ...
- 如何用 pycharm 调试 airflow
airflow 和 pycharm 相关基础知识请看其他博客 我们在使用 airflow的 dag时. 每次写完不知道对不对的,总不能到页面环境中跑一下,等到报错再调试吧.这是很让人恼火的事情 这里我 ...
- pycharm创建scrapy项目教程及遇到的坑
最近学习scrapy爬虫框架,在使用pycharm安装scrapy类库及创建scrapy项目时花费了好长的时间,遇到各种坑,根据网上的各种教程,花费了一晚上的时间,终于成功,其中也踩了一些坑,现在整理 ...
- 使用pycharm调试django项目
要使用pycharm调试django 打断点调试后台代码,首先要进行一下配置: 1.debug 配置 打开debug界面 2.选择python点+加号,然后选择python 3.名字debug,这个看 ...
- scrapy(一)--Pycharm创建scrapy项目
1.环境 操作系统:windows10. python版本:python3.6,Anaconda(将Anaconda3\Scripts;路径添加到环境变量Path中) pycharm:pycharm2 ...
- pycharm 调试django项目时,debug断点没反应???
入门python.django框架时,使用pycharm断点调试时,发现打的断点没反应,不起作用!上网上稍微一查,90%的都差不多,需要新建一个python程序,重新配置一遍,的确可以成功! 操作链接 ...
- Pycharm调试django项目时发现断点失效
解决方法: 第一步: 第二步: 点击 Edit Configuration 第三步 : 点击 + 选择python 填写相关参数信息 或者 点击ok 完成配置 重启 IDE 注意 重启IDE ...
- pycharm 调试 scrapy
http://blog.csdn.net/shijichao2/article/details/61940931
随机推荐
- HDOJ 4010 Query on The Trees LCT
LCT: 分割.合并子树,路径上全部点的点权添加一个值,查询路径上点权的最大值 Query on The Trees Time Limit: 10000/5000 MS (Java/Others) ...
- arduino波特率
波特率,也就是数据通信的速度,它是目前比较流行的传输速率.以这个速度通信的话,每发送一个字节(Byte)到控制端需要的时间大概是1毫秒.需要注意的是,为了精确控制四轴的平衡,我们需要尽量在短时间内多读 ...
- JavaScript重载
在Javascript 中,每个函数都有一个隐含的对象arguments,表示给函数 实际传给的参数 ,那么我们可以用 arguments来实现函数的重载 <!DOCTYPE html PUBL ...
- 采样方法(Sampling Methods)
1.基本采样算法(Basic Sampling Algorithms) 1.1.标准概率分布(Standard distributions) 1.2.拒绝采样(Rejection sampling) ...
- TensorFlow基础笔记(0) 参考资源学习文档
1 官方文档 https://www.tensorflow.org/api_docs/ 2 极客学院中文文档 http://www.tensorfly.cn/tfdoc/api_docs/python ...
- Throw是一个语句,用来做抛出例外的功能
当我们自己定义一个例外类的时候必须使其继承excepiton或者RuntimeException. Throw是一个语句,用来做抛出例外的功能. 而throws是表示如果下级方法中如果有例外抛出,那么 ...
- CAEmitterCell 和 CAEmitterLayer具体解释
一.在 UIKit 中,粒子系统由两部分组成: 1· 一个或多个 CAEmitterCells :发射器电池能够看作是单个粒子的原型(比如,一个单一的粉扑在一团烟雾).当散发出一个粒子,U ...
- hdu 2196(求树上每个节点到树上其他节点的最远距离)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196 思路:首先任意一次dfs求出树上最长直径的一个端点End,然后以该端点为起点再次dfs求出另一个 ...
- linux使用常见问题
出现RTNETLINK answers: File exists 同时出现connect:network is unreachable 和 Determining IP information for ...
- 使用HTML5 WebStorage API构建与.NET对应的会话机制
HTML5的Web Storage API,我们也称为DOMStarage API,用于在Web请求之间持久化数据.在Web Starage API 出现之前,我们都是将客户端和服务端之间的交互数据存 ...