zoukankan      html  css  js  c++  java
  • 第一周单元1:Requests库的爬取性能分析

    尽管Requests库功能很友好、开发简单(其实除了import外只需一行主要代码),但其性能与专业爬虫相比还是有一定差距的。请编写一个小程序,“任意”找个url,测试一下成功爬取100次网页的时间。(某些网站对于连续爬取页面将采取屏蔽IP的策略,所以,要避开这类网站。)

    请回复代码,并给出url及在自己机器上的运行时间。

    # coding:utf-8
    import requests
    import time
    
    def web_request(url, num):
        start_time = time.time()    # 循环开始时间
        for i in range(1, num):
            try:
                time_start = time.time()    # 本次开始时间
                r = requests.get(url)
                r.raise_for_status()    # 若返回的状态码不是200,将产生一次异常
                r.encoding = r.apparent_encoding    # 从内容分析出的响应内容编码方式(备选编码方式)
    #            print(r.text)
                once_time = time.time()     # 本次结束时间
            except:
                print("Error")
            else:
                print("第{}次请求,".format(i), "返回码:%s" % r.status_code, "用时:%s" % (once_time-time_start))
        end_time = time.time()      # 循环结束时间
        times = end_time - start_time
        print(times)
        print("访问链接:%s,%s次用时%s秒" % (url, num, times))
    
    web_request("http://" + input("url:"), int(input("num:")))

    运行结果:

  • 相关阅读:
    IIS Admin Service安装
    Linux常用命令总结
    Mysql常用命令操作小结
    mysql常用操作
    初识linux
    python基础
    接口测试基础
    MYSQL笔记
    mysql使用存储函数批量添加数据
    linux的基础命令(博客使用测试中 更新中)
  • 原文地址:https://www.cnblogs.com/p36606jp/p/15113873.html
Copyright © 2011-2022 走看看