scrapy知识点

1.持久化存储
        - 编码流程:
            1.数据解析
            2.封装item类
            3.将解析的数据存储到实例化好的item对象
            4.提交item
            5.管道接收item而后对item进行io操做
            6.开启管道
         - 注意事项:
            - 将同一份数据存储到不一样的平台中:
                - 管道文件中一个管道类负责将item存储到某一个平台中
                - 配置文件中设定管道类的优先级
                - process_item方法中return item的操做将item传递给下一个即将被执行的管道类
    2.全站数据爬取
        - 手动请求的发送:
            - 设定一个通用的url模板
            - 手动i请求的操做写在哪里:parse方法
            - yield scrapy.Request(url,callback)
    3.五大核心组件前端

猛击它浏览器

    4.post请求
        - start_requests(self)
        - post请求的手动发送:yield scrapy.FormRequest(url,callback,formdata)
        - COOKIES_ENNABLE = False
    5.日志等级和请求传参
        - LOG_LEVEL = 'ERROR'
        - LOG_FILE = 'path'
        - 请求传参的应用场景:
            - 爬取且解析的数据没有在同一张页面
            - 在请求方法中使用meta(字典)参数,该字典会传递给回调函数
                - 回调函数接收meta:response.meta['key']服务器

- 下载中间件:
    - 做用:批量拦截请求和响应
    - 拦截请求:
        1.篡改请求头信息(User-Agent):
        2.设置相关请求对象的代理ip(process_exception中)
- selenium如何做用在scrapy中:
    - 实例化一个浏览器对象(一次):spider的构造方法中cookie

 

  - 在scrapy中如何给全部的请求对象尽量多的设置不同的请求载体身份标识
        - UA池,process_request(request)
    - 在scrapy中如何给发生异常的请求设置代理ip
        - ip池,process_exception(request,response,spider):request.meta['proxy'] = 'http://ip:port'
            - 将异常的请求拦截到以后,经过代理ip相关的操做,就能够将改异常的请求变成非异常的请求,而后必须从新
                对该请求进行从新的请求发送:return request
    - 简述下载中间件的做用及其最重要三个方法的做用
        - process_request:拦截全部非异常的请求
        - process_response:拦截全部的响应对象
        - process_exception:拦截发生异常的请求对象,须要对异常的请求对象进行相关处理,让其变成
            正常的请求对象,而后经过return request 对该请求进行从新发送
    - 简述scrapy中何时须要使用selenium及其scrapy应用selenium的编码流程
        - 实例化浏览器对象(一次):spider的init方法
        - 须要编写浏览器自动化的操做(中间件的process_response)
        - 关闭浏览器(spider的closed方法中进行关闭操做)并发

- 图片懒加载scrapy

   这是一种前端技术,缓解服务器压力,给用户更好的体验,他只对屏幕内的图片进行加载,其余的图片使用伪属性隐藏起来,当检测到屏幕要显示时,改变为原生属性,因此能够经过伪属性名获取图片地址。ide

- 如何提高scrapy爬取数据的效率:函数

默认scrapy开启的并发线程为32个,能够适当进行增长。在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。post

下降日志级别:
    在运行scrapy时,会有大量日志信息的输出,为了减小CPU的使用率。能够设置log输出信息为INFO或者ERROR便可。在配置文件中编写:LOG_LEVEL = ‘INFO’网站

禁止cookie:
    若是不是真的须要cookie,则在scrapy爬取数据时能够禁止cookie从而减小CPU的使用率,提高爬取效率。在配置文件中编写:COOKIES_ENABLED = False

禁止重试:
    对失败的HTTP进行从新请求(重试)会减慢爬取速度,所以能够禁止重试。在配置文件中编写:RETRY_ENABLED = False

减小下载超时:
    若是对一个很是慢的连接进行爬取,减小下载超时能够能让卡住的连接快速被放弃,从而提高效率。在配置文件中进行编写:DOWNLOAD_TIMEOUT = 10 超时时间为10s


- crawlSpider
crawlSpider全站数据爬取
    - crawlSpider就是spider一个子类(派生)
    - crawlSpider具备的机制:
        - 链接提取器
        - 规则解析器
    - 建立爬虫文件: scrapy  genspider  -t  crawl  spiderName  www.xxx.com

               --此指令对比之前的指令多了 "-t crawl",表示建立的爬虫文件是基于CrawlSpider这个类的,而再也不是Spider这个基类。
    - 深度爬取:

增量式爬虫:

    - 概念:用来《检测》网站数据更新的状况。只会爬取网站中更新出来的新数据。     - 核心:去重  

相关文章
相关标签/搜索