search

Home  >  Q&A  >  body text

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

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

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

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

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

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

所以我想出了 2 个方案

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

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

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

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

能给我一些建议吗

大家讲道理大家讲道理2892 days ago361

reply all(2)I'll reply

  • PHPz

    PHPz2017-04-18 09:07:48

    Finally I decided to use option 2

    reply
    0
  • 高洛峰

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

    You can consider cooperating with redis, first write the content to redis for caching, and then import the redis content into mongodb or the like.

    You can write some rules during the import process to filter unsatisfied records. This should meet the needs. At the same time, the cache and main table in redis can have different table structures.

    reply
    0
  • Cancelreply