(一)Scrapy的命令行

更新时间:2023-12-09 21:18:19 阅读: 评论:0

2023年12月9日发(作者:ebao)

-

(一)Scrapy的命令行

(一)Scrapy的命令行

最近一直都是在用自己写的抓取框架做爬虫,还是系统的整理一下Scrapy相关的知识,做一个old school 的爬虫。

爬虫的整个流程,就是发送网络请求,处理返回的内容两个过程。然后我们将这个流程细化;如何准备需要访问的链接,需要访问的链接应

该是哪些链接;发送请求时我们带上什么,如何更快的发送更多请求;对返回的内容需要做哪些操作……

启动部分:

从我记忆里Scrapy的启动方式一步步来看,首先看scrapy的命令行是怎么运行起来的。和两个文件。

从commands文件夹中导入,commands文件夹下的就是常见的各种命令,描述着当我们在命令行下调用这些命令时会发生

什么。文件里是所以命令的基类ScrapyCommand。而这一些都是通过中来执行的,当我们最开始下载完Scrapy后在命

令行输入scrapy时。

我们可以从命令行里看到上面的结果,而这一切都是在中进行操作的。当运行时,会调用execute方法。

(1)当不带参数或带上了错误参数

execute方法最开始会获取最近的项目配置并加载,因为我此前并不在某个项目下,所以输出no active project。(图中inproject是一个

bool值,在中寻找文件,如果不存在则往上一级查找,查看现在是否在某个项目下。)

cmds是对commands文件夹下的各个命令进行加载,cmdname是对当前参数中的命令进行验证。

当不带任何参数的时候,调用_print_commands方法。方法里的代码是不是似曾相识,就是我们直接在命令行输入scrapy显示的内容。

def _print_commands(ttings, inproject):

_print_header(ttings, inproject)

print("Usage:")

print(" scrapy [options] [args]n")

print("Available commands:")

cmds = _get_commands_dict(ttings, inproject)

for cmdname, cmdclass in sorted(()):

print(" %-13s %s" % (cmdname, _desc()))

if not inproject:

print()

print(" [ more ] More commands available when run from project directory")

print()

print('U "scrapy -h" to e more info about a command')

(2)当带上正确参数

cmds中已经获取cmd对象,根据传入的参数获取对应的cmd对象。注意的是两个_run_print_help方法;第一个是执行cmd的

process_options方法,对cmd对象的tting进行一些初始化的设置(如log文件位置,等级的一些设置);设置好之后给cmd设置

crawler_process对象。第二个是_run_command方法,通过传入的cmd执行对应的run方法。

-

(一)Scrapy的命令行

本文发布于:2023-12-09 21:18:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1702127899241122.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:(一)Scrapy的命令行.doc

本文 PDF 下载地址:(一)Scrapy的命令行.pdf

标签:命令   参数   方法   命令行
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|