资讯专栏INFORMATION COLUMN

爬虫数据库一些简单的设计逻辑

edagarli / 489人阅读

摘要:所以要设计条队列,保存商品信息。数据更新问题有新商品进来,直接插入即可,如果是旧商品,那要不要更新数据库里的内容呢一般来说是可以更新的,但有种情况例外,就是你的数据库会有人去编辑的情况。

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

队列设计

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

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

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

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

何时停止问题

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

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

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

数据更新问题:

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43930.html

相关文章

  • 从0-1打造最强性能Scrapy爬虫集群

    摘要:包括爬虫编写爬虫避禁动态网页数据抓取部署分布式爬虫系统监测共六个内容,结合实际定向抓取腾讯新闻数据,通过测试检验系统性能。 1 项目介绍 本项目的主要内容是分布式网络新闻抓取系统设计与实现。主要有以下几个部分来介绍: (1)深入分析网络新闻爬虫的特点,设计了分布式网络新闻抓取系统爬取策略、抓取字段、动态网页抓取方法、分布式结构、系统监测和数据存储六个关键功能。 (2)结合程序代码分解说...

    vincent_xyb 评论0 收藏0
  • 爬虫 - 收藏集 - 掘金

    摘要:在这之前,还是有必要对一些概念超轻量级反爬虫方案后端掘金前言爬虫和反爬虫日益成为每家公司的标配系统。 爬虫修炼之道——从网页中提取结构化数据并保存(以爬取糗百文本板块所有糗事为例) - 后端 - 掘金欢迎大家关注我的专题:爬虫修炼之道 上篇 爬虫修炼之道——编写一个爬取多页面的网络爬虫主要讲解了如何使用python编写一个可以下载多页面的爬虫,如何将相对URL转为绝对URL,如何限速,...

    1fe1se 评论0 收藏0
  • 一只node爬虫升级打怪之路

    摘要:我是一个知乎轻微重度用户,之前写了一只爬虫帮我爬取并分析它的数据,我感觉这个过程还是挺有意思,因为这是一个不断给自己创造问题又去解决问题的过程。所以这只爬虫还有登陆知乎搜索题目的功能。 我一直觉得,爬虫是许多web开发人员难以回避的点。我们也应该或多或少的去接触这方面,因为可以从爬虫中学习到web开发中应当掌握的一些基本知识。而且,它还很有趣。 我是一个知乎轻微重度用户,之前写了一只爬...

    shiweifu 评论0 收藏0
  • nodeJS实现基于Promise爬虫 定时发送信息到指定邮件

    摘要:也就是说,我的篇文章的请求对应个实例,这些实例都请求完毕后,执行以下逻辑他的目的在于对每一个返回值这个返回值为单篇文章的内容,进行方法处理。 英国人Robert Pitt曾在Github上公布了他的爬虫脚本,导致任何人都可以容易地取得Google Plus的大量公开用户的ID信息。至今大概有2亿2千5百万用户ID遭曝光。 亮点在于,这是个nodejs脚本,非常短,包括注释只有71行。 ...

    xuweijian 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<