那个爬虫贴在这里:默默的撸了套爬虫...
很多人的关注点在那几个简单粗暴的循环上,虽然的确是略粗暴了点,但对于爬虫来说,这不是重点,重点是:
每个请求之间没有合理的时间停顿。
这对于被爬取的服务器才真的是粗暴。
也许有人会说,获取网页后的处理过程(此处甚至包含数据库操作)就是一个给服务器喘息的过程;也许还有人会说每秒几个几十个的请求对于服务器来说小 CASE 不然网站还是关停算了。
暂且不论服务器是否能承受的问题,我想有些人学爬虫根本不知道robots.txt,也没想过这是在免费获取他人网站的信息不应该给他人服务器施加太大压力,他们只想快速获取自己想要的内容。一个热门网站(微博为例),如果爬取的人很多,并且都不停顿甚至加多线程,对于服务器的压力可想而知。
当初学爬虫的时候,作者在书中第一个例子里就加了sleep,并且反复强调这很重要。我也想如此强调,这很重要。
在写不加停顿 /多线程的爬虫时,我们是否应该思考如下问题:
- 我爬取的信息有必要这么快获取吗,慢一点是不是也可以?
- 我想爬取的信息如果有一定的即时性,官方是否有相应 API ?
一点小小的想法,如果能给大家一点小小的启发,非常荣幸。也欢迎大家讨论自己的爬虫习惯。