本系列将由浅入深给大家介绍网络爬虫,一步一步教大家学会怎么分析请求,抓取数据,到项目实战,爬虫攻防等,真正意义上爬取一切你想要的!
本章开始,作者打算开发一个抓取JD数据的爬虫,希望小伙伴们给予大力支持!你们的支持是我不断创作,撸码的动力!本章主要介绍JD分类数据完整抓取和数据入库以及知识点分享。
数据为王一、继续挖掘分类数据
针对昨天的小分类获取,昨晚搞到半夜,精力有限没在继续研究下去了,好在今天白天中午抽空研究了一下,说复杂也挺简单,说简单也挺复杂,主要就是json嵌套的太多了,让人绕不过来弯弯!废话不多说先上个代码截图。
分类获取代码截图其实就是嵌套几个foreach的问题,但是要注意字段的对应,这嵌套了4个循环我也是头晕晕的。
这里和大家分享一个小捷径:拿到一段json数据,我们通常会新建一个和json字符串相对应字段的实体类,然后反序列化json得到一个list或者一个对象,但如果字段较多,嵌套层级较深的话,建实体类就比较麻烦了,所以我们可以使用dynamic动态类型进行解析json这样就不用去建实体类了。
但是dynamic也有弊端,字段可以点出来或者使用索引方式去读取,但不是编译器自动提示出来的,所以它会避开编译器的检查,说白了就是你能编译通过,但是一旦字段写错了那就会出错,所以大家以后使用过程中要格外注意。
json解析效果图上图是我自己组装的json数据格式,拿到数据以后转换成自己想要的格式,怎么方便怎么来!
二、数据库搭建,数据入库
我们拿到数据之后要把数据存到数据库里面,毕竟后面我们还要有更多,更丰富的信息要存起来,所以要建立数据库。前期针对分类,建一张表和三张表都行,这里我建了三张表,分别对应一级、二级、三级分类,字段就比较简单了,主键,分类名称,分类链接就可以了,不要那么些花里胡哨的东西,简单明了!
分类数据数据库查询我使用的是SQLServer版本,SQL数据库相信大家都不陌生吧,可能对于新入行的小伙伴会有些陌生,后续会有专门的SQL专题来介绍,包括SQL基本语法,增删改查,索引,复杂SQL,执行计划等,这里不做详细的介绍,我们只拿它作为一个数据的载体。
SQLServer这里给大家推荐一个轻量级的ORM框架-SqlSugar,请大家往下看。
三、轻量级ORM-SqlSugar介绍
伴随着科技的进步,开发人员的逐渐庞大起来,针对数据库操作也涌现出了很多优秀的ORM框架,从最开始的ADO.NET到大名鼎鼎的EntityFramework,NBear、NHibernate、GentleNet,IBatis.Net和SubSonic等等,都很优秀;但我们作为开发人员,要选择一款适合自己的,用着舒服,简单快捷效率高是最终目的,不是越多越好,而在于精通;最近又了解到了SqlSugar,我来做一个简单的介绍。
SqlSuagrORMSqlSugar是我们国内一个叫杨凯旋的人开发的,个人认为还是比较NB的,它运行在.NET4.+.NETCORE基础上,并且是最容易使用的数据库访问技术,目前支持主流数据库,如:SQLServer,MySql,Oracle,Sqlite等;
最方便的地方是基本上不用写sql语句,实体映射,表字段映射,事务隔离,批量增删改数据库,用起来不要太方便!
数据库访问公共配置关于sSqlSugar的功能大概可以用以下两个图来概括
SqlSugar16大功能SqlSugar查询特色四、总结一下
本章主要完成了数据分类的抓取和保存到数据库,涉及到一些小技巧和ORM的介绍,希望小伙伴们可以多多