• (六--一)scrapy框架简介和基础应用


    一 什么是scrapy框架

    官方解释

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
    
    其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫

    自己理解

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)
    的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可

    二 scrapy框架的安装

     Linux:
    
          pip3 install scrapy
    
     
    
      Windows:
    
          a. pip3 install wheel
    
          b. 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    
          c. 进入下载目录,执行 pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl
    
          d. pip3 install pywin32
    
          e. pip3 install scrapy

    三 基本使用

    步骤:

      1 创建工程

      2 进去第二层目录--创建爬虫应该程序

      3 编写爬虫文件

      4 修改setting文件

      5 执行爬虫

    具体:

      1 创建工程

    scrapy startproject 项目名称

    # 例如

    scrapy startproject first_project

      2 进去第二层目录--创建爬虫应该程序

    cd project_name(进入项目目录)
    
    scrapy genspider 应用名称 爬取网页的起始url (例如:scrapy genspider qiubai www.qiushibaike.com)

    # 例如

    cd
    first_project
    scrapy genspider qiubai www.qiushibaike.com
    
    

      3 编写爬虫文件--在执行完前2步之后,会在项目的spiders中生成一个 应用名(qiubai)的py文件,文件源码如下

    import scrapy
    
    
    class QiubaiSpider(scrapy.Spider):
      # 应用名称 name
    = 'qiubai'
      # 允许爬取的域名[如果遇见不是该域名下的url则爬取不到]
    allowed_domains = ['www.qiushibaike.com']
      # 起始url start_urls
    = ['https://www.qiushibaike.com/']   # 访问起始url并获取结果后的回调函数,该函数的response参数就是向起始的url发送请求后,获取的响应对象,该函数返回值必须为可迭代对象或者NULL def parse(self, response): print(response)

      4 修改setting文件

    # 19行
    USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
    # 22行 ROBOTSTXT_OBEY
    = False

       5 执行爬虫

    scrapy crawl  应用名称
    # 例如
    scrapy crawl  qiubai

     

  • 相关阅读:
    基于WEB的仓库管理系统设计与实现
    基于SSH的医院在线挂号系统设计与实现
    Java新闻发布管理系统设计与实现
    基于java记账管理系统设计与实现
    基于java电脑彩票销售管理系统的设计与实现
    基于JAVA的推箱子游戏系统设计与实现
    银行柜员业务绩效考核系统的设计与实现
    医院管理住院系统设计与实现
    陶瓷工厂的进销存管理系统设计与实现
    搜索引擎的设计与实现
  • 原文地址:https://www.cnblogs.com/a438842265/p/10208913.html
Copyright © 2020-2023  润新知