小白的scrapy入门之路(二)

       上次我们爬取了菜鸟教程的Python页面,很简单的一个小项目对不对。这次我们来玩点更有意思的东西,就是让爬虫自己识别、自己去爬。

    听上去是不是高端大气上档次,小编刚学的时候也觉得高端大气上档次。爬虫会自己自动去爬取数据,是不是很像AI。好了,说了那么多废话,下面进入我们今天的正题吧。

  首先,今天我们要爬取的是脚本之家。我们可以百度一下,找到脚本之家的网站,如果浏览器有开发者工具的话,直接按F12,弹出调试框,我们就可以看到网站的结构了。上次我们爬的只是一小部分的页面,这次我们来玩次大的,爬取整个网站。小编这次用的是Scrapy给我们提供的CrawlSpider,即通用蜘蛛。同时,Scrapy还给我们提供了CSVspider,XMLspider等等。具体用法,请自行百度一下scrapy的官方文档,如果英文不好,可以看中文文档噢。

  下面我们先写好我们的Item.py:

这次我们使用的还是ItemLoader,为什么小编喜欢用ItemLoader呢?因为懒嘛,还有的是这样蜘蛛的代码会非常整洁并且容易理解。数据处理的东西就可以放在pipeline或者items.py里面做了。写好了Item之后,后面就到我们的蜘蛛了:

是不是很简洁,下面小编简单说说蜘蛛吧。像我们所看到的一样,我们只需要把继承改成CrawlSpider,加上rules就可以了是不是很简单。实际上我们还是要了解一下它是怎么做到的。首先是实例化了一个Rule的对象,也就是网页提取的规则。而其次就是实例化了LinkExtractor的对象,用于匹配你想要蜘蛛去爬的网页url。最后就是follow和callback了。follow就是我们让不让蜘蛛做进一步的跟踪。callback就是提取了这些东西后要交给谁去处理。这样我们就简单的介绍完了crawlspider的使用了。下面就到我们的pipeline了,pipeline我们还是采用上次的pipeline,将数据异步写入数据库。

写完了pipeline,只要我们在设置中添加所要的参数就可以爬取了,例如数据库的那些参数,和用户代理(User-Agent)。不过这么容易满足不了小编的求知欲,所以小编做了新的尝试,用户代理池。

我们新建一个py文件,里面放所需要的用户代理的值,百度上都有。然后我们改写我们的中间件。Scrapy给我们提供了两个中间件,一个是蜘蛛中间件,一个是下载中间件。这次我们要改写的是一个下载的中间件,我们继承的是scrapy原有的User-Agent的中间件。

只要简单的几行的导入和几行的代码,我们的中间件就写好了。最后只要在设置文件里面把scrapy原有的USER-AGENT的中间件设置None,把我们自己写的中间件添加上去就可以了。这样我们的爬虫就写好了,是不是很简单。哈哈。

下面看看我们爬到的数据吧,因为数据太多,我就不全部展示了。

小编也就爬了10来万的数据,然后小编就关掉了。首先是因为单一主机爬取比较慢,其次呢,小编比较懒,不想偷偷地透露下次小编要搞的新奇玩意。

好了,小编的小白scrapy入门之路,今天就到这了。欢迎各位大神批评指正,让小编能够更好地成长。

转载于:https://www.cnblogs.com/mychaelyoung/p/9991059.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值