python网络爬虫 开发第二天
网站的树结构(url设计)
url->子域名->具体文章
www.qq.com->v.qq.com->v.qq.com/x/cover/71ielauv44ray7v.html
url分层设计
1.顶级域名
2.二级域名
3.n级域名
4.域名下有类型
5.类型下有id(文章视频啥的id)
通过再网站上加链接覆盖所有url
整个网站是树形结构
爬取网站需要策略
1.画出网站url结构图
链接是有环路的 所有url都向下爬取 陷入死循环 无限返回主页 取第一个url
2.url去重
爬取晚后把url放到爬起历史中 下一次提取到url出现再历史爬取中 直接跳过 进入第二个url中
不会形成环路
深度优先算法和实现
A
B C
D E F G H
I
一步一步往下走 走完了退回来(优先左边)
A->B->D->E->I->C->F->G->H
scrapy默认使用深度优先,深度优先用递归实现
递归不跳出 一直递归 递归过深 栈会溢出
广度优先算法和实现
同上一模块树
先访问兄弟节点,再访问子节点
第一层节点访问完 访问第二层节点
广度优先也叫做按层次遍历
也叫宽度优先算法
A->B->C->D->E->F->G->H->I
广度优先算法通过队列实现