suchen

Heim  >  Fragen und Antworten  >  Hauptteil

python - scrapy 采集数据的时候直接入主库,还是先入临时库呢?

我的网站是用来展示一些信息的

我打算去采集一些网站的数据,使用 scrapy

不过我有一些担心,就是担心 如果对方发现我采集,他对他的数据进行一些变动:比如内容超长,改变编码,改变什么

然后,我的采集程序傻傻的继续采集,然后入库的时候造成严重的结果,比如结果太多,导致数据库用光,或者会不会被 sql 注入把数据库删没了

我不知道我的担心是不是多余的

所以我想出了 2 个方案

(第一个方案) 这个方案 无疑会增加我的很多工作量 我想让爬虫在本地运行,本地架设一个 django+SQLite 的环境,爬虫把数据先存入本地,我在本地人工检验过数据,然后点击上传按钮,才将数据上传到主数据库,这样应该就安全多了,但是这样工作量会很大,要写很多代码

(第二个方案) 后来我又想了一个方案,就是在主库的表里增加一个字段, status 表示这个数据的状态,默认只展示审核过的数据,而如果状态是没有被审核,那么数据就不展示给用户,但我似乎还是有些担心,担心,对方网站做了什么变动,导致我的爬虫出现 bug ,一次性不小心采集几十万 几千万 的数据,把我的数据库撑爆了就糟了

似乎我的第二个方案的担心是多余的,好像 scrapy 默认可以过滤数据格式,可以净化数据, 但由于我是一个新手,对这个东西不是很了解,

所以想提问 请教一下大家, 哪个方案更好呢, 您有更好的方案吗

能给我一些建议吗

大家讲道理大家讲道理2892 Tage vor367

Antworte allen(2)Ich werde antworten

  • PHPz

    PHPz2017-04-18 09:07:48

    最后我决定用方案2了

    Antwort
    0
  • 高洛峰

    高洛峰2017-04-18 09:07:48

    可以考虑配合redis,先把内容写入redis作缓存,然后再把redis内容导入mongodb之类。

    可以在导入过程写一些规则过滤不满足的记录,应该这样可以满足需求,同时redis中的缓存和主表可以是不同的表结构。

    Antwort
    0
  • StornierenAntwort