Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。整体架构大致如下:

python之路_day100_爬虫之scrapy框架

一、安装

#Windows平台
    1、pip install wheel #安装后,便支持通过wheel文件安装软件,wheel文件官网:https://www.lfd.uci.edu/~gohlke/pythonlibs
    2、pip install lxml
    3、pip install pyopenssl
    4、下载并安装pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/
    5、下载twisted的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    6、执行pip install 步骤5中下载的文件路径
    7、pip install scrapy
  
#Linux平台
    1、pip install scrapy

二、命令行工具

  主要有两种命令:其中Project-only必须切到项目文件夹下才能执行,而Global的命令则不需要。具体介绍如下:

#1 查看帮助
    scrapy -h
    scrapy <command> -h

#2 两种命令
    Global commands:
        #确保切换到项目所建目录下
        startproject #创建项目,如:scrapy startproject myProject
        genspider    #创建爬虫程序,如:cd myProject; scrapy genspider baidu(程序名) http://www.baidu.com(url)
        settings     #如果是在项目目录下,则得到的是该项目的配置
        runspider    #运行一个独立的python文件,不必创建项目
        shell        #scrapy shell url地址  在交互式调试,如选择器规则正确与否
        fetch        #独立于程单纯地爬取一个页面,可以拿到请求头
        view         #下载完毕后直接弹出浏览器,以此可以分辨出哪些数据是ajax请求
        version      #scrapy version 查看scrapy的版本,scrapy version -v查看scrapy依赖库的版本
    Project-only commands:
        crawl        #运行爬虫,必须创建项目才行,确保配置文件中ROBOTSTXT_OBEY = False
        check        #检测项目中有无语法错误
        list         #列出项目中所包含的爬虫名
        edit         #编辑器,一般不用
        parse        #scrapy parse url地址 --callback 回调函数  #以此可以验证我们的回调函数是否正确
        bench        #scrapy bentch压力测试

#3 官网链接
    https://docs.scrapy.org/en/latest/topics/commands.html

  命令应用实例:

#1、执行全局命令:请确保不在某个项目的目录下,排除受该项目配置的影响
scrapy startproject MyProject

cd MyProject
scrapy genspider baidu www.baidu.com

scrapy settings --get XXX #如果切换到项目目录下,看到的则是该项目的配置

scrapy runspider baidu.py

scrapy shell https://www.baidu.com
    response
    response.status
    response.body
    view(response)
    
scrapy view https://www.taobao.com #如果页面显示内容不全,不全的内容则是ajax请求实现的,以此快速定位问题

scrapy fetch --nolog --headers https://www.taobao.com

scrapy version      #scrapy的版本

scrapy version -v   #依赖库的版本


#2、执行项目命令:切到项目目录下
scrapy crawl baidu
scrapy check
scrapy list
scrapy parse http://quotes.toscrape.com/ --callback parse
scrapy bench
View Code

相关文章:

  • 2022-02-07
  • 2022-02-07
  • 2021-11-27
  • 2021-12-10
  • 2021-06-29
猜你喜欢
  • 2022-01-18
  • 2021-08-21
  • 2021-11-30
  • 2021-11-30
  • 2021-12-10
  • 2021-11-20
  • 2021-05-05
相关资源
相似解决方案