• scrapy初始和简单应用


    什么是Scrapy

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

    安装

      1.Linux:
    
          pip3 install scrapy
    
     
    
      2.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.创建项目:scrapy startproject 项目名称

    scrapy startprojet 项目名称

    项目结构:

    project_name/
       scrapy.cfg:
       project_name/
           __init__.py
           items.py
           pipelines.py
           settings.py
           spiders/
               __init__.py
    
    scrapy.cfg   项目的主配置信息。(真正爬虫相关的配置信息在settings.py文件中)
    items.py     设置数据存储模板,用于结构化数据,如:Django的Model
    pipelines    数据持久化处理
    settings.py  配置文件,如:递归的层数、并发数,延迟下载等
    spiders      爬虫目录,如:创建文件,编写爬虫解析规则
    项目结构

    2.创建爬虫应用程序

    cd project_name(进入项目目录)

    scrapy genspider 应用名称 爬取网页的起始url

    scrapy genspider qiubai www.qiushibaike.com

    3.编写爬虫文件

    可以利用pycharm打开此项目目录编辑

    # -*- coding: utf-8 -*-
    import scrapy
    
    
    class QiubaiSpider(scrapy.Spider):
        # 爬虫文件的名称:根据名称可以定位到指定的爬虫文件
        name = 'qiubai'
        # 允许的域名
        allowed_domains = ['www.qiushibaike.com']
        # 起始url列表
        start_urls = ['http://www.qiushibaike.com/']
    
        # 用于解析:response就是起始url对应的响应对象
        def parse(self, response):
            print(response)  # 对象
            print(response.text)  # 文本
            print(response.body)  # 源数据

    4.设置修改settings.py配置文件相关配置

    19行:USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' #伪装请求载体身份
    
    22行:ROBOTSTXT_OBEY = False  #可以忽略或者不遵守robots协议

    5.执行爬虫程序:scrapy crawl  应用名称

    scrapy crawl qiubai

     带日志和不带日志的命令

        scrapy crawl 爬虫名称 :该种执行形式会显示执行的日志信息
        scrapy crawl 爬虫名称 --nolog:该种执行形式不会显示执行的日志信息
  • 相关阅读:
    一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
    Spring之創建Bean的三種方式
    mybatis單元測試成功,但是起服務測試失敗的原因:mybatis.xml配置錯了!
    HTML5 because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME c
    如何使用mybatis?(包括存储过程,函数,事务)
    IDEA 目录和package创建时的命名区别
    G.Greater and Greater
    C++ bitset容器用法简单介绍
    C.Cover the Tree
    阶乘位数
  • 原文地址:https://www.cnblogs.com/clbao/p/10257354.html
Copyright © 2020-2023  润新知