请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

内容管理平台数据抓取,深度优先模式抓取问题

https://img1.sycdn.imooc.com//szimg/5ac9b3c500011e3716001120.jpg

老师我想爬一个公司内部的内容管理系统,内容管理系统URL格式是这样的:http://10.156.0.129/hbcmp/documentList.action?folderId={0}&folderNamePath={1}&pageSize={2}&currentPageNo={3}&keyword={4}

其数据结构是树型带有子节点,我用到递归遍历,我的思路就是先模拟登陆,登陆之后就调用内容管理的url地址,得到是一个json数据,然后我解析json数据,获取到json数据之后在修改url地址里面的参数然后在进行爬,也就是想深度优先,可是不知道哪里出了问题,数据一直爬不全,每次运行一次数据会增加一点,我入库的时候也查询了数据,相同的不进行入库。请老师帮我看看,谢谢!

正在回答 回答被采纳积分+3

3回答

bobby 2018-04-09 16:11:21

你这里说到的数据爬不全是什么意思?是一段时间后会停止掉? 然后数据并没有抓取完爬虫就停止了, 深度优先不代表一定能抓取所有数据,因为一个循环到后期有可能陷入一个环路中,到这个时候你是有可能还没有抓取到所有数据的时候 你的深度已经递归完成了 这种时候你需要找一些其他的入口点才行

0 回复 有任何疑惑可以回复我~
  • 数据没有爬全的意思是数据库里面有90000条数据但是只爬了3万多条数据,还有6万条数据没有爬出来。我现在就想把所有的数据都爬出来,但是不知道逻辑要怎么处理才能把所有的数据都爬出来?老师你说的找一些其他的入口点是什么意思?
    回复 有任何疑惑可以回复我~ 2018-04-09 20:07:19
  • bobby 回复 提问者 qq_多爱一下_03725241 #2
    我的意思是就是3万条数据已经构成闭环了, 另外6W条因为没有入口所有获取不到, 你需要另外找一个入口 很多时候一个初始化url并不能抓取所有内容,你另外一个保护着6000个url的起始url作为抓取起始页
    回复 有任何疑惑可以回复我~ 2018-04-10 10:21:02
  • 提问者 qq_多爱一下_03725241 回复 bobby #3
    我感觉是我爬一次的时候,可能根本没有获取到另外的url地址导致没有数据,而且url地址是动态生成的,必须依据上一个节点的主键去查询子节点的数据,就这样一直循环。到了type不为folder才结束,然后在进行数据抓取。
    回复 有任何疑惑可以回复我~ 2018-04-10 10:53:25
提问者 qq_多爱一下_03725241 2018-04-08 15:43:08

https://img1.sycdn.imooc.com//szimg/5ac9c7d900019e6f32820642.jpg

https://img1.sycdn.imooc.com//szimg/5ac9c7ef00019e6f32820642.jpg

https://img1.sycdn.imooc.com//szimg/5ac9c7f30001aa9033561422.jpg

这里的type如果是folder表示有子节点,数据格式就这样。

0 回复 有任何疑惑可以回复我~
bobby 2018-04-08 14:34:51

你这里我访问有点问题 不能访问,是不是因为是内网的问题? 或者你上传一个数据我能能够参考一下

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信