当前位置: 首页 > wzjs >正文

老干部活动中心网站建设方案抖音优化是什么意思

老干部活动中心网站建设方案,抖音优化是什么意思,手机搭建电脑做的网站,互联网情况下做企业网站的有点文章目录 配置文件Scrapy的默认项目结构Scrapy命令行的使用查看帮助准备项目可用命令全局命令Global Commandsstartprojectgenspidersettingsrunspidershellfetchviewversion 项目命令Project-only Commandscrawlchecklisteditparsebench 自定义项目命令 上一节我们了解了如何安…

文章目录

  • 配置文件
  • Scrapy的默认项目结构
  • Scrapy命令行的使用
    • 查看帮助
    • 准备项目
    • 可用命令
      • 全局命令Global Commands
        • startproject
        • genspider
        • settings
        • runspider
        • shell
        • fetch
        • view
        • version
      • 项目命令Project-only Commands
        • crawl
        • check
        • list
        • edit
        • parse
        • bench
    • 自定义项目命令

上一节我们了解了如何安装Scrapy,安装后如何用呢?这节开始学习。
在Scrapy中提供一个命令行工具,可以控制scrapy进行各种操作,实现不同功能。本节要先学习这个命令行工具,这样我们就能快速创建scrapy项目和爬虫程序,并进行相关调试和运行。

配置文件

Scrapy有一个默认的配置参数文件叫“scrapy.cfg”,scrapy默认会从这个文件中读取配置参数,该配置文件的标准存放路径有以下三种:

  1. 系统级路径:/etc/scrapy.cfg(Linux或Mac)或C:\scrapy\scrapy.cfg(Windows)
  2. 用户级:~/.config/scrapy.cfg ($XDG_CONFIG_HOME) 和 ~/.scrapy.cfg ($HOME)
  3. 项目级:创建项目根目录下的scrapy.cfg
    其中项目级的优先级最高,其次是用户级和系统级,简单来讲项目级>用户级>系统级,所以通常我们默认只用项目级的。
    Scrapy也可以理解一些配置的环境变量,如:
  • SCRAPY_SETTINGS_MODULE用来设置python的scrapy模块路径
  • SCRAPY_PROJECT用来设置scrapy使用的爬虫程序
  • SCRAPY_PYTHON_SHELL用来设置所使用的shell环境

Scrapy的默认项目结构

在继续进行命令行工具讲解前,还有一个需要了解的,就是Scrapy的默认文件结构,如果不了解这个结构,我们使用命令行时可能会在错误的路径执行,造成命令找不到指定的文件而报错,Scrapy默认的文件结构如下所示:

scrapy.cfg
myproject/__init__.pyitems.pymiddlewares.pypipelines.pysettings.pyspiders/__init__.pyspider1.pyspider2.py...

scrapy的命令行工具,默认使用的是项目根目录(即上面的最外层目录),因为scrapy的配置文件scrapy.cfg也在根目录下。
scrapy.cfg文件中有下面一行配置,用来设置默认使用的爬虫程序。

[settings]
default = myproject.settings

如果有多个项目在同一个文件夹下,那么可以在scrapy.cfg文件中添加如下设置:

[settings]
default = myproject1.settings
project1 = myproject1.settings
project2 = myproject2.settings

然后使用export SCRAPY_PROJECT=project2来设置使用的项目。

Scrapy命令行的使用

查看帮助

我们可以直接在安装了scrapy的python环境下,直接输入scrapy就可以显示scrapy的帮助信息,如下所示,和命令scrapy -h作用一样,注意如果和我一样用的是虚拟环境,需要先进入虚拟环境再执行。

(venv_scrapy) D:\Code\scrapyTutorial>scrapy
Scrapy 2.11.2 - no active projectUsage:scrapy <command> [options] [args]Available commands:bench         Run quick benchmark testfetch         Fetch a URL using the Scrapy downloadergenspider     Generate new spider using pre-defined templatesrunspider     Run a self-contained spider (without creating a project)settings      Get settings valuesshell         Interactive scraping consolestartproject  Create new projectversion       Print Scrapy versionview          Open URL in browser, as seen by Scrapy[ more ]      More commands available when run from project directoryUse "scrapy <command> -h" to see more info about a command

在上面的帮助信息中,第一行会显示我们安装的scrapy的版本和已激活的项目,下面是scrapy的用法,和可用的命令有哪些,最后一行还提示了如果想相信了解某个命令的详细信息,可以使用scrapy <command> -h来查看每个命令的帮助。

准备项目

后面为了逐一讲解每个命令的作用的,我们需要先有个可以用的项目才能继续讲解,因此先来看如何创建项目和操作项目。
创建项目可以使用命令

scrapy startproject myproject [project_dir]

这个命令将会在project_dir目录下创建一个scrapy的项目,并且项目名称为myproject,如果project_dir省略不指定,则会自动创建一个和项目名称相同的目录。
创建好项目后,需要进入到project_dir目录,即项目根目录对scrapy的项目进行操作。如创建新的爬虫程序:

cd myproject  # 进入scrapy根目录
scrapy genspider mydomain mydomain.com  # 创建爬虫

这里要注意区分下,有scrapy.cfg文件的是根目录,若执行startproject时没指定project_dir,则在根目录下会有一个和项目名称相同的文件夹,这是个默认的爬虫程序目录。
为了方便理解,后面我会把startproject创建的根目录称为项目目录,该目录下包含scrapy的参数配置文件和爬虫程序目录。
爬虫程序就是根目录下创建的文件夹,我称为爬虫程序,因为后面开发爬虫时,主要在这些文件中编写,爬虫程序目录名称可能和根目录名称相同(startproject时不指定project_dir就会相同),一个项目目录中可能有多个爬虫程序目录,每个爬虫程序目录中都包含了爬虫文件、中间件文件、items文件、pipelines文件、设置文件等。
执行爬虫时,可使用scrapy.cfg文件对默认的爬虫程序进行切换,还可通过设置SCRAPY_PROJECT环境变量指定使用的爬虫程序。

可用命令

scrapy中分全局命令(Global commands)和项目命令(Project-only commands)两种,什么意思呢?全局命令只要在scrapy项目的根目录或子目录中都可以使用,而项目命令必须切换到项目目录下才能执行。

全局命令Global Commands

startproject
  • 语法:scrapy startproject <project_name> [project_dir]
  • 说明:创建项目,在project_dir目录下创建新的Scrapy项目,命名为project_name,其中project_dir可以省略,默认会在当前目录下创建一个和project_name同名的文件夹作为project_dir。
  • 例子:scrapy startproject myproject
genspider
  • 语法:scrapy genspider [-t template] <name> <domain or URL>
  • 说明
    • 作用:在当前文件夹(非项目文件夹内)或当前项目爬虫文件夹(必须项目文件夹内)创建一个新的爬虫,创建爬虫时不一定必须使用这个命令,也可以自己手动创建爬虫文件。
    • 参数说明
      • name是爬虫名字
      • domain or URL是生成allowed_domainsstart_urls属性的
      • -t template是可选参数,用于指定使用的模板
      • -l查询可用的模板
  • 例子
# 查询可用的模板
$ scrapy genspider -l
Available templates:basiccrawlcsvfeedxmlfeed# 使用basic模板创建example爬虫
$ scrapy genspider example example.com# 使用crawl模板创建scrapyorg爬虫
$ scrapy genspider -t crawl scrapyorg scrapy.org
settings
  • 语法:scrapy settings [options]
  • 说明
    • 作用:查询Scrapy设置,如果是在爬虫程序文件夹中,则显示爬虫程序设置,如果是在根目录则显示默认的Scrapy设置
    • options参数说明
      • -h显示帮助信息
      • --get输出原始设置值
      • --getbool--getint--getfloat--getlist分别是输出布尔值、整型、浮点型、列表的设置值,这几个基本不用,因为参数值不是对应的类型会直接报错
  • 例子
# 查询BOT_NAME
$ scrapy settings --get BOT_NAME
scrapybot# 查询DOWNLOAD_DELAY时间
$ scrapy settings --get DOWNLOAD_DELAY
0
runspider
  • 语法:scrapy runspider <spider_file.py>
  • 说明
    • 作用:单独运行一个爬虫文件,不必创建项目
  • 例子
scrapy runspider scrapyorg.py
shell
  • 语法:scrapy shell [url]
  • 说明
    • 作用:启动scrapy的交互模式,如果指定url则启动交互模式时会自动爬取该url;如果不指定url,则只启动交互模式,不会下载任何页面。url也可替换成本地的文件。该模式下可以用来调试代码,如验证选择器编写的是否正确等。
    • 参数说明
      • --spider=SPIDER指定要使用的爬虫文件
      • -c code执行代码并打印代码的执行结果
      • --no-redirect不遵循重定向
      • --nolog不打印日志,新手不建议使用,因为交互模式启动后会打印很多提示信息,包括可以使用的命令
  • 例子
$ scrapy shell http://www.example.com/some/page.html
[ ... scrapy shell starts ... ]$ scrapy shell --nolog http://www.example.com/ -c (response.status, response.url)
(200, 'http://www.example.com/')# shell follows HTTP redirects by default
$ scrapy shell --nolog http://httpbin.org/redirect-to?url=http%3A%2F%2Fexample.com%2F -c '(response.status, response.url)'
(200, 'http://example.com/')# you can disable this with --no-redirect
# (only for the URL passed as command line argument)
$ scrapy shell --no-redirect --nolog http://httpbin.org/redirect-to?url=http%3A%2F%2Fexample.com%2F -c (response.status, response.url)
(302, 'http://httpbin.org/redirect-to?url=http%3A%2F%2Fexample.com%2F')
fetch
  • 语法:scrapy fetch <url>
  • 说明
    • 作用:使用Scrapy下载器下载指定的url,并输出到屏幕。这个命令可以展示爬虫如何获取页面,如获取请求头。
    • 参数
      • --spider=SPIDER指定要使用的爬虫文件
      • --headers打印请求头,而不是请求体
      • --no-redirect不遵循重定向
  • 例子
$ scrapy fetch --nolog http://www.example.com/some/page.html
[ ... html content here ... ]$ scrapy fetch --nolog --headers http://www.example.com/
{'Accept-Ranges': ['bytes'],'Age': ['1263   '],'Connection': ['close     '],'Content-Length': ['596'],'Content-Type': ['text/html; charset=UTF-8'],'Date': ['Wed, 18 Aug 2010 23:59:46 GMT'],'Etag': ['"573c1-254-48c9c87349680"'],'Last-Modified': ['Fri, 30 Jul 2010 15:30:18 GMT'],'Server': ['Apache/2.2.3 (CentOS)']}
view
  • 语法:scrapy view <url>
  • 说明
    • 作用:在浏览器中打开指定的url,用于调试代码,如你想要的结果和spider找到的是否一致
    • 参数
      • --spider=SPIDER指定要使用的爬虫文件
      • --no-redirect不遵循重定向
  • 例子
$ scrapy view http://www.example.com/some/page.html
[ ... browser starts ... ]
version
  • 语法:scrapy version [-v]
  • 说明
    • 作用:打印Scrapy的版本信息
    • 参数
      • -v除了显示Scrapy的版本信息,还显示Python、Twisted等依赖包的版本信息和平台信息。
  • 例子
$ scrapy version
Scrapy 2.11.2$ scrapy version -v
Scrapy       : 2.11.2
lxml         : 5.3.0.0
libxml2      : 2.11.7
cssselect    : 1.2.0
parsel       : 1.9.1
w3lib        : 2.2.1
Twisted      : 24.10.0
Python       : 3.11.4 (tags/v3.11.4:d2340ef, Jun  7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)]
pyOpenSSL    : 24.2.1 (OpenSSL 3.3.2 3 Sep 2024)
cryptography : 43.0.3
Platform     : Windows-10-10.0.22631-SP0

项目命令Project-only Commands

crawl
  • 语法:scrapy crawl <spider>
  • 说明
    • 作用:启动爬虫的爬取
    • 参数
      • -h, --help显示帮助文件
      • -a NAME=VALUE设置爬虫参数
      • --output FILE-o FILE添加爬取的项目到文件末尾,使用-用作标准输出,用冒号设置输出格式-o FILE: FORMAT
  • 例子
$ scrapy crawl myspider
[ ... myspider starts crawling ... ]$ scrapy crawl -o myfile:csv myspider
[ ... myspider starts crawling and appends the result to the file myfile in csv format ... ]$ scrapy crawl -O myfile:json myspider
[ ... myspider starts crawling and saves the result in myfile in json format overwriting the original content... ]$ scrapy crawl -o myfile -t csv myspider
[ ... myspider starts crawling and appends the result to the file myfile in csv format ... ]
check
  • 语法:scrapy check [-l] <spider>
  • 说明
    • 作用:检查是否有语法错误
    • 参数
      • -l列出所有可用的检查器
  • 例子
$ scrapy check -l
first_spider* parse* parse_item
second_spider* parse* parse_item$ scrapy check
[FAILED] first_spider:parse_item
>>> 'RetailPricex' field is missing[FAILED] first_spider:parse
>>> Returned 92 requests, expected 0..4
list
  • 语法:scrapy list
  • 说明
    • 作用:列出当前项目所有可用的爬虫
  • 例子
$ scrapy list
spider1
spider2
edit
  • 语法:scrapy edit <spider>
  • 说明
    • 作用:使用 EDITOR 环境变量中定义的编辑器或(如果未设置)EDITOR 设置编辑给爬虫。
  • 例子
$ scrapy edit spider1
parse
  • 语法:scrapy parse <url> [options]
  • 说明
    • 作用:获取指定的URL并传给爬虫处理,使用--callback参数指定回调函数。可以用来验证我们写的回调函数是否正确。
    • 参数
      • --spider=SPIDER指定要使用的爬虫文件
      • -a NAME=VALUE设置爬虫参数
      • --callback-c指定回调函数
      • --meta-m附加传给回调函数的请求meta,必须是json字符串,如–-meta='{"foo" : "bar"}'
      • --cbkwargs附加传给回调函数的参数,必须是json字符串,如–-cbkwargs='{"foo" : "bar"}'
      • --pipelines通过pipelines处理items
      • --rules-r使用CrawlSpider规则寻找回调函数
      • --noitems不显示爬虫项目items
      • --nolinks不显示提取的链接
      • --nocolour不实用高亮输入内容
      • --depth-d请求需要递归的层数
      • --verbose-v显示每层的信息
      • --output-o存储爬取的items到文件
  • 例子
$ scrapy parse http://www.example.com/ -c parse_item
[ ... scrapy log lines crawling example.com spider ... ]>>> STATUS DEPTH LEVEL 1 <<<
# Scraped Items  ------------------------------------------------------------
[{'name': 'Example item','category': 'Furniture','length': '12 cm'}]# Requests  -----------------------------------------------------------------
[]
bench
  • 语法:scrapy bench
  • 说明
    • 作用:对Scrapy做压力测试,可以帮助开发者找出性能瓶颈和优化空间,提高爬虫的效率和稳定性。

自定义项目命令

Scrapy支持使用COMMANDS_MODULE模块设置自己的项目命令。
如何实现可参考scrapy/commands的实践方法。
然后在项目的settings文件中配置COMMANDS_MODULE = "mybot.commands"来添加自定义命令。

以上就是对Scrapy命令行工具的说明,有不明确的地方,可参考官方文档

欢迎大家在各大平台关注我,我会不定期发布技术相关文章和各种小工具,并且欢迎共同技术探讨!
在这里插入图片描述

http://www.dtcms.com/wzjs/108229.html

相关文章:

  • 发泡机 东莞网站建设免费外链代发平台
  • 移动互联网的终点和归宿是什么seo在线工具
  • 网站页面设计考虑要素bt鹦鹉磁力
  • wordpress让访客停留网上seo研究
  • 果洛电子商务网站建设做营销型网站的公司
  • 鄂尔多斯市建设网站国产长尾关键词拘挖掘
  • 做网站的调查问卷seo现在还有前景吗
  • 网站开发无锡佛山网站建设模板
  • 做淘宝设计能做网站吗抖音营销
  • 使用ecs做主机做淘客网站网络热词作文
  • 杭州制作网站企业网站查询域名入口
  • wordpress中脑图形黄冈seo顾问
  • 济南网站建站推广公司网站优化
  • 天津市工程建设交易网站查汗国数据指数
  • 党风廉政建设平台网站爱站网备案查询
  • 自己做优惠劵网站赚钱吗软文生成器
  • 北京知名网站建设公司排名廊坊网站建设优化
  • jq网站登录记住密码怎么做百度推广营销页
  • 重庆网站建设的意义广告优化师培训
  • 服务型网站有哪些石家庄seo外包公司
  • 企业网站建设遵循的原则磁力宅
  • 电子商务网站的建设与规划书怎么做谷歌推广
  • 无锡梦燕服饰网站谁做的深圳抖音seo
  • behance设计网站入口青岛seo外包公司
  • wordpress adsense integratorseo服务公司招聘
  • 宁夏手机网站建设推广普通话内容50字
  • 网站图片上传功能怎么做二十条优化措施原文
  • 做网站的公司 设计好南京广告宣传公司seo
  • 网站建设营销型号的区别上海好的seo公司
  • 做论文常用网站有哪些优化近义词