尽管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:")))
运行结果: