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

队列设计

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

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

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

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

何时停止问题

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

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

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

数据更新问题:

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

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

爬虫数据库一些简单的设计逻辑相关推荐

  1. Java爬虫更新mysql数据库(简单事例)

    http://webmagic.io/docs/zh/posts/ch4-basic-page-processor/selectable.html webmagic官网文档解释 所需jar包: 以及w ...

  2. 数据库设计-逻辑设计

    数据库设计 逻辑设计: 什么是逻辑设计? 独立于具体的物理数据库之外,抽象出的数据库通用的设计模型. 逻辑设计是做什么的? 将需求分析转化为数据库的逻辑模型. 通过常用的数据库设计方法,如ER图对逻辑 ...

  3. 数据库设计-逻辑设计 1

    数据库设计 逻辑设计: 什么是逻辑设计? 独立于具体的物理数据库之外,抽象出的数据库通用的设计模型. 逻辑设计是做什么的? 将需求分析转化为数据库的逻辑模型. 通过常用的数据库设计方法,如ER图对逻辑 ...

  4. 数据库的简单设计与使用(编辑工具:Power Designer)

    @一贤不穿小鞋(!<数据库的简单设计与使用>) 编辑工具:Power Designer 1.新建Model: file ==> new Model ==> 选择Model Ty ...

  5. 云数据库产品及架构设计背后的考量

    摘要:在阿里云数据库技术峰会上,阿里云数据库高级产品专家萧少聪(铁庵)介绍了全体系阿里云数据库产品并对于阿里云数据库产品的实现架构进行了分享,帮助大家了解了阿里云全数据库产品体系能解决哪些实用场景的问 ...

  6. python爬虫概述及简单实践

    文章目录 一.先了解用户获取网络数据的方式 二.简单了解网页源代码的组成 1.web基本的编程语言 2.使用浏览器查看网页源代码 三.爬虫概述 1.认识爬虫 2.python爬虫 3.爬虫分类 4.爬 ...

  7. 数据库复习 - PART2 - 建模设计与范式

    数据库复习 - PART2 - 建模设计与范式 数据库复习 - PART2 - 建模设计与范式 4. 数据建模 4.1 概述 4.2 E-R模型 4.2.1 基本组成 4.2.2 联系专题 4.2.3 ...

  8. MySQL数据库表结构的设计

    一.前言 1.1 关系型数据库 数据库关系型模型的概念最早由"关系数据库之父"之称的埃德加·弗兰克·科德(Edgar Frank Codd或E. F. Codd)博士提出,1970 ...

  9. 数据库与信息管理课程设计——技术栈【Go+VUE+PGSQL+Redis】的托管培训中心信息管理系统

    一.项目架构介绍 项目技术栈:Go+VUE3+PGSQL+Redis 开发工具:IDEA2021.1 后端开发语言:GoLand 前端架构:VUE3.0(集成Element-UI) 后端架构:gin. ...

最新文章

  1. 五分钟体验分布式事务框架Seata
  2. 互联网协议 — IPSec 安全隧道协议
  3. linux 非登录shell自动,Linux登录shell和非登录(交互式shell)环境变量配置
  4. Delphi 两个应用程序(进程)之间的通信
  5. Spark之Spark角色介绍及运行模式
  6. 系统架构师学习笔记-多媒体基础知识
  7. 在linux环境中配置tomcat
  8. js string转json要注意的地方
  9. Java 8 异步 API、循环、日期,用好提高生产力!
  10. 小米路由器r3gv2/r4a Lean的OpenWrt固件
  11. NXP ZigBee JN5169开发流程总结
  12. 你竟然是这么神奇的 CSS
  13. css样式代码的基本格式
  14. 吉里吉里2 2.30版正式发布了
  15. 菜鸟学JAVA之——常用类(StringBuffer、StringBuilder、Comparable、Comparator等)
  16. 男程序员怎么过妇女节
  17. 太空旅行时代到了!马斯克载人飞船发射成功!
  18. 安装配置webpack webpack不是内部或外部命令
  19. 最新安卓导航装车作业
  20. android aoa usb,建立通过USB连接线使用AOA protocal两款Android设备

热门文章

  1. ASP.NET MVC:实现我们自己的视图引擎
  2. HttpClient 使用时,出现「no trusted certificate found」的原因 (JDK没有安装相应的证明书)
  3. Apache 与 Tomcat 整合
  4. Excel中,通过 「条件格式」 实现, 下拉菜单选择某个值时,这一行的颜色改变。
  5. 自己的 「QA票 CheckList 」 KPT
  6. blogic-io.xml文件中的出力属性和output.javabean文件中的属性需要一一对应
  7. 【SQL】BETWEEN
  8. IDEA项目目录里下找不到src,但是src确实存在的的解决方案
  9. MongoDB compass 连接不上远程服务器的解决方法
  10. jsp页面之间传中文参数显示乱码问题的解决