zoukankan      html  css  js  c++  java
  • 遇到Io阻塞时会切换任务之【爬虫版】

    #! /usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    from urllib import request
    import gevent,time
    from gevent import monkey
    
    monkey.patch_all()    # 把当前程序中的所有io操作都做上标记
    
    def spider(url):
        print("GET:%s" % url)
        resp = request.urlopen(url)
        data = resp.read()
        print("%s bytes received from %s.." % (len(data), url))
    
    urls = [
        "https://weibo.com/",
        "https://www.baidu.com/",
        "https://www.yinxiang.com/"
    ]
    
    start_time = time.time()
    for url in urls:
        spider(url)
    print("同步耗时:",time.time() - start_time)
    
    async_time_start = time.time()
    gevent.joinall([
        gevent.spawn(spider,"https://weibo.com/"),
        gevent.spawn(spider,"https://www.baidu.com/"),
        gevent.spawn(spider,"https://www.yinxiang.com/"),
    ])
    print("异步耗时:",time.time() - async_time_start)

    输出

    GET:https://weibo.com/
    6117 bytes received from https://weibo.com/..
    GET:https://www.baidu.com/
    227 bytes received from https://www.baidu.com/..
    GET:https://www.yinxiang.com/
    16505 bytes received from https://www.yinxiang.com/..
    同步耗时: 0.23460006713867188
    GET:https://weibo.com/
    GET:https://www.baidu.com/
    GET:https://www.yinxiang.com/
    227 bytes received from https://www.baidu.com/..
    16505 bytes received from https://www.yinxiang.com/..
    6117 bytes received from https://weibo.com/..
    异步耗时: 0.0946660041809082

  • 相关阅读:
    Judy alpha 第九天
    Judy alpha 第八天
    Judy alpha 第七天
    Judy alpha 第六天
    Judy alpha 第五天
    Judy alpha 第四天
    Fieldtrip 和 spm 文件读取
    matlab更改打开时候默认路径
    mne-python 安装大法
    Greenhouse-Geisser;统计结果报告;效应力大小介绍
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10317051.html
Copyright © 2011-2022 走看看