第一周单元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:")))

运行结果:

原文地址:https://www.cnblogs.com/p36606jp/p/15113873.html