python爬虫中选scrapy框架的优势

2024年07月05日 Scrapy Python51

最近在超市闲逛的时候,发现不少物品都在进行打折活动。在屯粮食方面纠结了好一会,就拿油来说,有不同的品牌和不同油的种类,虽然最后都是用来吃的。同样小编最近学习python爬虫模块,在选择框架上也纠结了一下子,毕竟除了scrapy框架外,还有requests, bs4等等,那么该如何选择呢?

建议还是先使用scrapy快速上手写几个爬虫出来,再学习使用requests+bs4自己写爬虫。

原因如下:

1、学习一个新东西,首先是先用起来,然后在使用中发现问题,再究其原理,才能深入学习;

2、scrapy不管是否支持python3,如果想学习爬虫原理,都无碍的,因为学习思想最重要;

3、scrapy封装了爬虫的一些核心组件,而且上手简单,如果想以后自己写爬虫框架,它的实现思路还是很值得借鉴的;

等用scrapy写出几个爬虫抓几个网站后,这基本算是入门了。

要抓的网站非常多时,就会遇到几个问题:

1、一些网站开始防抓,IP被封?

随机User-Agent,随机代理,开始用到scrapy的插件。

2、网页太多,抓的太慢,scrapy默认是不支持分布式的,怎么实现分布式?

一些分布式的插件就会用起来,例如scrapy-redis。

3、网页越来越多,会不会抓重复?

哦,原来不会重复抓。看一看scrapy源码,基于url指纹过滤重复的。啊,过滤规则自己可以替换,不错!

4、网站如何深度抓取,如何广度抓取?

看一看scrapy源码,哦,原来通过实现了栈和队列改变任务的入队顺序,结合配置来控制。

如果你有足够的兴趣和耐心,有没有发现,从开始使用它,慢慢地你开始关注scrapy的是如何实现了,继续深入源码,你就会发现它的实现思想很巧妙,代码结构低耦合,插件威力巨大!

相信看完本篇文章后,更多的小伙伴可以坚定的选择python爬虫中的scrapy框架,在使用上面非常适合python新手。

本文链接:http://so.lmcjl.com/news/7874/

展开阅读全文