zoukankan      html  css  js  c++  java
  • python自动化开发-[第二十五天]-scrapy进阶与flask使用

    今日内容概要

      1、cookie操作

      2、pipeline

      3、中间件

      4、扩展

      5、自定义命令

      6、scrapy-redis

      7、flask使用

        - 路由系统

                - 视图

                - 模版

                - message(闪现)

        - 中间件

        - session

        - 蓝图

                - 安装第三方插件

    Scrapy
      - 创建project
      - 创建爬虫
      - 编写
        -- start_urls = ['http://www.xxx.com']
          - def parse(self,response):
            
            yield Item对象
            yield Request对象
            
          - pipeline
            - process_item
              @classmethod
            - from_clawer
            - open_spider
            - close_spider
            配置
            
          - request对象("地址",回调函数)
      - 执行
    
    高性能相关:
      - 多线程【IO】和多进程【计算】
      - 尽可能利用线程:
        一个线程(Gevent),基于协程:
          - 协程,greenlet
          - 遇到IO就切换
        一个线程(Twisted,Tornado),基于事件循环:
          - IO多路复用
          - Socket,setBlocking(Flase)
    上节回顾

    一、scrapy补充

      start_requests 

        支持返回值有两种(scrapy内部通过会执行iter()):

          一、生成器yield Request

                      二、可迭代对象  [url1,url2,url3]

        通过源码查看源码入口:

          from scrapy.crawler import Crawler

          Crawler.crawl 方法

          

          例子:

    def start_requests(self):
        for url in self.start_urls:
        yield Request(url=url,callback=self.parse)
        # return [Request(url=url,callback=self.parse),]
    

       ***迭代器和可迭代对象的区别:  

    迭代器,具有__next__方法,并逐一向后取值
    li = [11,22,33] #迭代器有iter和next方法
    obj = iter(li)
    obj.__next__()
    
    可迭代对象,具有__iter__方法,返回迭代器
    li = list([11,22,33]) //可迭代对象没有next方法
    迭代器 = li.__iter__()
    
    生成器,函数中具有yield关键字
    __iter__
    __next__
    
    迭代器 = iter(obj)
    

     

  • 相关阅读:
    JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)
    JWebFileTrans: 一款可以从网络上下载文件的小程序(一)
    Jcompress: 一款基于huffman编码和最小堆的压缩、解压缩小程序
    Codeigniter框架前后台部署(多目录部署)
    ubuntu-server部署php+mysql运行环境
    成熟的标志就是生活越来越专注
    西门子PLC存储器、地址区
    VS快捷键
    SQL Server 连接字符串和身份验证 学习
    C#特性
  • 原文地址:https://www.cnblogs.com/liujiliang/p/7776391.html
Copyright © 2011-2022 走看看