scrapy 采集数据的时候直接入主库,还是先入临时库呢?主要是担心对方突然改变数据格式或者改变什么,会对我的数据库造成某种伤害,从而导致我的应用崩溃或者工作不正常 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qq5745965425
V2EX    问与答

scrapy 采集数据的时候直接入主库,还先入临时库呢?主要是担心对方突然改变数据格式或者改变什么,会对我的数据库造成某种伤害,从而导致我的应用崩溃或者工作不正常

  •  
  •   qq5745965425 2016-07-15 11:16:52 +08:00 1814 次点击
    这是一个创建于 3443 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    所以我想出了 2 个方案

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

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

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

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

    能给我一些建议吗

    第 1 条附言    2016-07-15 12:05:53 +08:00
    感谢帮忙,目前打算用方案 2
    5 条回复    2016-07-16 15:12:37 +08:00
    lxy
        1
    lxy  
       2016-07-15 11:44:22 +08:00   1
    限制内容长度。编码可以自动检测。 sql 参数化查询。
    qq5745965425
        2
    qq5745965425  
    OP
       2016-07-15 11:47:27 +08:00
    @lxy 您的意思是,用方案 2 就可以了吗
    lxy
        3
    lxy  
       2016-07-15 11:53:50 +08:00   1
    @qq5745965425 他要加垃圾数据你也没办法。限制一下抓取峰值频率,数据库加个字段 update_time ,计算平均时间内数据增长量,设置警戒值,超过提醒。
    qq5745965425
        4
    qq5745965425  
    OP
       2016-07-15 11:56:36 +08:00
    @lxy 谢谢
    julyclyde
        5
    julyclyde  
       2016-07-16 15:12:37 +08:00
    2 的话 IO 代价比较低
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5165 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 47ms UTC 07:11 PVG 15:11 LAX 23:11 JFK 02:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86