博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬虫数据库一些简单的设计逻辑
阅读量:6576 次
发布时间:2019-06-24

本文共 529 字,大约阅读时间需要 1 分钟。

场景:爬取某商城的部分商品。

队列设计

这里至少需要爬取2种资源,一种是商品列表,一种是商品信息。 所以要设计1条队列,保存商品信息URL。

爬虫1定期爬前N个列表页 URL,把里面的商品信息URL爬下来,保存到队列里。

爬虫2定期从队列中抽出商品信息URL,爬取商品信息,爬完后把该URL移出队列。

所以呢,简单来说,只要有2张表就行了,一张保存队列信息,一张保存商品信息。

何时停止问题

为了避免每次都把所有商品爬一遍,就要在适当的时候停止。 爬列表页的时候,一般是设定只爬前 N 页。 爬商品信息URL的时候,一般是先检查这个商品是否存在,不存在就入队,存在的话,就表示接下来都是旧数据了,可以停止了。

当然有种情况,就是有些旧的商品,会被人为地置顶,或者排到前面来。

这时候就要设置一个值 M,每次最多爬前 M 个,多了不爬。

数据更新问题:

有新商品进来,直接插入即可,如果是旧商品,那要不要更新数据库里的内容呢? 一般来说是可以更新的,但有种情况例外,就是你的数据库会有人去编辑的情况。

如果你的数据库有专人编辑,那么最好不要更新旧商品,因为会覆盖掉编辑的内容。并且,数据表要采用软删除的方式,避免前面的人刚删除了数据,你的爬虫又把数据写进去了。

转载地址:http://bmwno.baihongyu.com/

你可能感兴趣的文章
本地域名访问
查看>>
第九天作业
查看>>
CSS-文本垂直居中
查看>>
软件工程学习有感
查看>>
Java设计模式-享元模式
查看>>
第一篇 Windows 8 开发Windows Metro style app环境配置
查看>>
ORACLE REGEXP应用实例
查看>>
Windows 下的坐标系
查看>>
IHttpModule与IHttpHandler的区别整理
查看>>
4.2
查看>>
本地windows下新建kafka生产消费数据
查看>>
mysql待整理
查看>>
Amazon S3 API
查看>>
Autofac
查看>>
滑动侧边栏
查看>>
UIView layer 的对应关系
查看>>
新浪研发中心: Berkeley DB 使用经验总结
查看>>
windbg调试句柄泄露
查看>>
好好理解返回值引用
查看>>
理清文本编码
查看>>