zoukankan      html  css  js  c++  java
  • Scrapy项目创建以及目录详情

    Scrapy项目创建已经目录详情

    一、新建项目(scrapy startproject)

    • 在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中,运行下列命令:
    PS C:scrapy> scrapy startproject sp1
    
    You can start your first spider with:
        cd sp1
        scrapy genspider example example.com
    

    Scrapy项目目录结构

    • scrapy.cfg # 项目的配置文件
    • sp1/ # 项目的Python模块,将会从这里引用代码
    • sp1/items.py # 项目的目标文件
    • sp1/pipelines.py # 项目的管道文件用于文件持久化
    • sp1/settings.py # 项目的设置文件
    • sp1/middlewares.py # 中间件
    • sp1/spiders/ # 存储爬虫代码目录

    settings.py内容详情

    settings.py

    # 项目名
    BOT_NAME = 'sp1'
    
    # 爬虫所在的位置
    SPIDER_MODULES = ['sp1.spiders']
    NEWSPIDER_MODULE = 'sp1.spiders'
    
    # 爬虫是否遵循 robots 协议
    ROBOTSTXT_OBEY = False
    
    # 爬虫的并发量 默认 16 个
    # CONCURRENT_REQUESTS = 32
    
    # 下载延时 3 s
    #DOWNLOAD_DELAY = 3
    
    # 是否禁用cookies  默认不禁用
    #COOKIES_ENABLED = False        # 表示为禁用
    
    # 请求包头
    DEFAULT_REQUEST_HEADERS = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        # 语言可以关闭,按照服务器返回值为准
        # 'Accept-Language': 'en',
    }
    
    # 下载中间件,值越小优先级越高
    DOWNLOADER_MIDDLEWARES = {
       'sp1.middlewares.Sp1DownloaderMiddleware': 543,
    }
    
    # 下载后的数据如何处理,存储过程
    ITEM_PIPELINES = {
       'sp1.pipelines.FilePipeline': 300,
    }
    

    创建一个爬虫文件

    在当前目录下输入命令,将在sp1/spider目录下创建一个名为itcast的爬虫,并指定爬取域的范围:

    PS C:scrapy> cd sp1
    # scrapy genspider关键字    chouti 爬虫名         chouti.com 一般指定站点域名  
    PS C:scrapysp1> scrapy genspider chouti chouti.com
    Created spider 'chouti' using template 'basic' in module:
      sp1.spiders.chouti
    

    通过pycharm调试scrapy项目

    1.使用pycharm打开项目
    2.在项目等级目录创建main.py

    from scrapy.cmdline import execute
    
    import sys
    import os
    
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    
    print(BASE_DIR)
    
    execute(["scrapy","crawl","chouti"])
    
  • 相关阅读:
    使用Layui上传图片,并进行压缩(非原创,证实可用)
    mysql 存储过程及事件
    Redis一些简单的笔记
    RIOT 技术笔记-01 RIOT介绍
    杂七杂八-ubuntu安装eclipse
    杂七杂八-sqlyog连接mysql错误码2058
    杂七杂八-Mysql8.0忘记root密码
    RIOT学习笔记-01 cygwin安装
    Ubutun-安装远程桌面
    中间件-RocketMQ 02 Docker下的安装
  • 原文地址:https://www.cnblogs.com/baolin2200/p/8547900.html
Copyright © 2011-2022 走看看