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)

 

 

 

 

 

转载于:https://www.cnblogs.com/liujiliang/p/7776391.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值