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