尽管Requests库功能很友好、开发简单(其实除了import外只需一行主要代码),但其性能与专业爬虫相比还是有一定差距的。
编写一个小程序,找个url,测试一下成功爬取多次网页的时间。(某些网站对于连续爬取页面将采取屏蔽IP的策略,所以,要避开这类网站。)
import requests
import time
def GetHtml(url):
try:
r=requests.get(url,timeout=30) #请求一个url连接 超时时间为30S
r.raise_for_status() #如果状态不是200,引发HTTPError异常
r.encoding=r.apparent_encoding
return r.text
except:
print("Generate an exception")
url="http://www.apple.com/"
for i in range(2):
start_time=time.time()
text=GetHtml(url)
end_time=time.time()
print(i+1,':',end_time-start_time)
print("用时{:.3}".format(end_time-start_time))
1 : 0.4793558120727539
用时0.479
2 : 0.25616884231567383
用时0.256
>>>