如果python爬虫没效率,那将毫无意义。那么,如何优化python爬虫,提升工作效率呢?
python爬虫效率低,自有其原因,搞清楚了问题出在哪里,才能更好的解决问题。
一、本地自身原因。cpu不够用,爬虫一跑起来就爆满,这点可以通过分布式的方式来解决,利用更多的节点去处理分发的任务;带宽不够用,这是硬伤,可能公司网络的终端用户太多或者本身不够快,这个可以通过云服务器来解决(一般都有100MB的方案提供)。
二、目标服务器原因。目标服务器资源有限,爬虫太猛又太多,一个网站也许不止你一个人在爬取,结果目标服务器受不了那么多爬虫直接崩溃,这也是常有的事情,这个没有更好的解决办法,只能祈祷对方意识到问题,提升服务器资源,提升反爬虫策略,阻挡大部分爬虫。
三、反爬虫策略。现在大部分网站都有反爬虫策略,毕竟资源有限,爬虫太疯狂,影响到服务器的正常运转,影响到真实用户的访问,反爬虫策略大大限制了爬虫的速度,甚至封杀爬虫。这时,就需要爬虫升级自己的策略了,落后就要挨打。常见的反爬虫策略可以参考这篇文章《反爬虫喜欢用哪些方式来限制爬虫》。
四、自身代码优化。程序代码的效率也是有高有低的,资深程序员往往考虑的方方面面更多,代码效率更高,一些初学者可能经验不足,代码执行效率不高,针对这点,只能提升自己的编码技能,多考虑全面点;爬虫策略优化,反爬虫策略日新月异,自己的反反爬虫也得提升。
五、代理服务器。python爬虫离不开代理IP的支撑,高效稳定的代理IP才能使得爬虫持续稳定的高效工作,而一些普通的、免费的代理IP,往往使得爬虫工作陷入泥沼,如蜗牛慢行。如何选择高效稳定的代理IP呢,请看这篇文章《做爬虫选择哪家代理IP比较好》。