V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mdzz
V2EX  ›  程序员

听说你们把煎蛋爬趴下了,于是我也爬了一下发现没多大数据量,就很不理解

  •  
  •   mdzz · 2017-10-30 20:59:06 +08:00 · 12104 次点击
    这是一个创建于 2567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    爬虫比较简单,比较快就写好了,爬的过程中遇到了反爬策略, 大约 50 个请求之后就会 403, 于是给请求分组,一组 50 个,组与组之间间隔 60 秒,就没有再 403 过了。


    下面是抓取过程中一组共 50 个请求的网络流量图

    流量图

    约 10KB/s 的流量大约持续 30s 左右,一组流量约 300KB。


    总共爬了三个版块,妹子图、无聊图和段子

    • 妹子图:有 241 页共 5 组
    • 无聊图:有 294 页共 6 组
    • 段子:有 132 页共 3 组

    共计 14 组,若按一组 300KB 计算,不超过 5MB,抓取总时间需要约 20 分钟。


    下面是抓取后的数据库,数据库不到 16MB (抓取过程启用了 gzip,故网络流量远小于最终数据库大小) 数据库


    我就不明白了,怎么就把煎蛋爬趴下了?怎么就爬趴下了?爬趴下了?

    73 条回复    2017-11-01 20:02:05 +08:00
    takanasi
        1
    takanasi  
       2017-10-30 21:02:47 +08:00
    又不是只有一个人爬,况且首页你还没爬呢
    Keyblade
        2
    Keyblade  
       2017-10-30 21:53:23 +08:00
    花式自挂
    green15
        3
    green15  
       2017-10-30 22:03:17 +08:00 via iPhone
    不理解就好好读书,别乱爬,脏!
    zjyl1994
        4
    zjyl1994  
       2017-10-30 22:28:42 +08:00   ❤️ 1
    我就不明白了,我就双十一买一件衣服怎么就把淘宝买崩了。(全国又不是你一个人在爬,好多新手都折腾煎蛋。。。)
    zhijiansha
        5
    zhijiansha  
       2017-10-30 22:57:48 +08:00 via iPhone
    能否分享下爬虫代码?
    siyemiaokube
        6
    siyemiaokube  
       2017-10-30 23:15:25 +08:00 via iPhone   ❤️ 33
    大概是五楼这种比较多
    cnyang
        7
    cnyang  
       2017-10-30 23:17:19 +08:00
    @siyemiaokube 哈哈
    hugee
        8
    hugee  
       2017-10-30 23:20:59 +08:00 via Android
    煎蛋技术能力有限吧,2333
    pynix
        9
    pynix  
       2017-10-30 23:43:20 +08:00 via iPhone
    你们把人家爬挂了
    zlfzy
        10
    zlfzy  
       2017-10-30 23:51:36 +08:00 via iPhone   ❤️ 1
    爬这些老图不如爬汤
    stebest
        11
    stebest  
       2017-10-31 00:27:54 +08:00 via Android   ❤️ 3
    有多少人梦想过全国人民给他捐一块钱
    changwei
        12
    changwei  
       2017-10-31 01:15:28 +08:00 via Android
    热图访问人数多,cdn 有缓存应该会稍微好一点吧,老图的话没有缓存都是要回源的,可能更容易爬跨人家网站。
    bxb100
        13
    bxb100  
       2017-10-31 01:18:35 +08:00 via Android
    额,什么时候请求数和网络流量关联在一起了
    Perry
        14
    Perry  
       2017-10-31 02:48:07 +08:00
    楼主你要是分享了代码,煎蛋说不定就真的要挂
    opengps
        15
    opengps  
       2017-10-31 07:37:38 +08:00 via Android
    都不能好好的看图嘛?
    taresky
        16
    taresky  
       2017-10-31 07:41:25 +08:00 via Android   ❤️ 1
    ID 贴切
    kaifeii
        17
    kaifeii  
       2017-10-31 07:51:00 +08:00
    你们天天这么搞,干脆煎蛋做个开放 api 卖钱得了,或者做个延迟同步的共享读库
    cyn
        18
    cyn  
       2017-10-31 07:57:25 +08:00 via Android
    煎蛋是什么
    Ryosan
        19
    Ryosan  
       2017-10-31 08:06:43 +08:00 via Android   ❤️ 7
    id 如本人
    chnyang
        20
    chnyang  
       2017-10-31 08:17:22 +08:00 via Android
    @cnyang。。。你好混 ID 的同志
    opengps
        21
    opengps  
       2017-10-31 08:22:57 +08:00
    @Ryosan 特意看了一眼,确实是
    mcds
        22
    mcds  
       2017-10-31 08:33:36 +08:00
    19 楼好评~
    toono
        23
    toono  
       2017-10-31 08:37:57 +08:00
    @cyn 原以为“煎蛋”是京东,谁知道,煎蛋就是煎蛋网
    Acebiu
        24
    Acebiu  
       2017-10-31 08:40:56 +08:00 via Android
    被随便带带节奏喊技术无罪的是不是也是你们?
    knva
        25
    knva  
       2017-10-31 08:41:12 +08:00   ❤️ 1
    求你了,别爬煎蛋了.
    Januser
        26
    Januser  
       2017-10-31 09:01:10 +08:00   ❤️ 2
    “我就是踹了他一脚,他怎么就能死了?”

    楼主和其他千千万万踹了煎蛋一脚的垃圾都这么说。
    momocraft
        27
    momocraft  
       2017-10-31 09:07:18 +08:00
    爬虫门槛太低了。
    讲真比脚本小子还低,又有妹子图形成正反馈。可怜这些做内容的网站。
    malkavia
        28
    malkavia  
       2017-10-31 09:15:03 +08:00
    我没记错的话,好多新手教程都是爬煎蛋爬糗百的
    lingo
        29
    lingo  
       2017-10-31 09:18:48 +08:00
    赞 19L
    7654
        30
    7654  
       2017-10-31 09:23:14 +08:00
    楼主该看看煎蛋的 PV 什么的
    一个 WP 博客站能有这个数据已经很了不起了
    Xrong
        31
    Xrong  
       2017-10-31 09:24:03 +08:00
    楼主这种爬虫算好的了,有些入门的新手连个延迟都不加一顿瞎搞。CDN 请求大量回源,源站也很蛋疼。。。再说一些小破资源站哪里有那么多资源去弄些反爬措施。
    Felldeadbird
        32
    Felldeadbird  
       2017-10-31 09:26:07 +08:00
    把代码分享出来吧。让全国都去爬就体验了威力。233333
    bsidb
        33
    bsidb  
       2017-10-31 09:26:59 +08:00
    煎(jian)蛋(dan)
    8023
        34
    8023  
       2017-10-31 09:36:02 +08:00 via Android
    No individual raindrop ever considers itself responsible for the flood.
    smgui
        35
    smgui  
       2017-10-31 09:42:22 +08:00
    设计爬虫尽量温和,杀鸡取卵不是一个文明人正常的做法
    croz
        36
    croz  
       2017-10-31 09:53:38 +08:00   ❤️ 1
    @bsidb #33 是 jandan,(手动滑稽)
    laqow
        37
    laqow  
       2017-10-31 09:53:50 +08:00 via Android   ❤️ 1
    因为刚学编程 2 小时的傻子也能写出煎蛋的爬虫
    lyhapple
        38
    lyhapple  
       2017-10-31 09:54:17 +08:00
    我想爬汤, 奈何网络太渣渣, 没有威屁恩
    logOo
        39
    logOo  
       2017-10-31 10:28:16 +08:00
    @lyhapple 看了你的回复,好像打了新的世界。。
    wfd0807
        40
    wfd0807  
       2017-10-31 10:43:49 +08:00
    @zlfzy
    @lyhapple
    爬汤是什么?
    zlfzy
        41
    zlfzy  
       2017-10-31 10:47:25 +08:00
    @wfd0807 tumblr

    @lyhapple 用海外的 vps 爬,快如闪电
    onlyhot
        42
    onlyhot  
       2017-10-31 10:55:39 +08:00 via iPhone
    能耐这么大去爬淘宝,煎蛋这垃圾网站也不能显示你技术多牛,你说是不?
    hxndg
        43
    hxndg  
       2017-10-31 10:58:22 +08:00
    @wfd0807 汤不热,上面有各种少儿不宜的东西,有的还有联系方式.....
    huang5587783
        44
    huang5587783  
       2017-10-31 11:01:29 +08:00 via iPhone
    煎蛋的作用就是训练爬虫?
    slgz
        45
    slgz  
       2017-10-31 11:03:53 +08:00
    @laqow 真的吗, 我是小学生别骗我
    yu099
        46
    yu099  
       2017-10-31 11:15:45 +08:00 via Android   ❤️ 3


    你看看这请求次数,流量大小
    corcd
        47
    corcd  
       2017-10-31 11:25:14 +08:00
    心疼煎蛋
    sheng9632
        48
    sheng9632  
       2017-10-31 11:31:34 +08:00
    心疼
    SaltedFish12138
        49
    SaltedFish12138  
       2017-10-31 11:43:36 +08:00 via Android
    抵制所有爬煎蛋的行为
    expy
        50
    expy  
       2017-10-31 12:49:47 +08:00   ❤️ 1
    数据库给你们自己下吧,都别折腾了。
    yuxuan
        51
    yuxuan  
       2017-10-31 13:00:27 +08:00   ❤️ 1
    就不能换个网站折腾。。。每次看见爬虫 几乎都是煎蛋 我一次都没上过煎蛋 光看你们写爬虫 都了解了煎蛋
    timothyye
        52
    timothyye  
       2017-10-31 13:38:02 +08:00




    看来煎蛋与爬虫一直就有不解之缘……
    xiejc
        53
    xiejc  
       2017-10-31 13:41:43 +08:00
    var cheerio = require('cheerio');
    var request = require('request-promise');
    var iconv = require('iconv-lite');
    var EventProxy = require('eventproxy');
    var fs = require("fs");
    var PATH = '/Users/xie/Documents/images/';
    var ep = EventProxy.create();
    var total = 160;
    var result = {
    list: []
    }
    ep.on('finish', function(page) {
    total = total - 1;
    if (total > 0) {
    matches(total);
    } else {
    fs.writeFile('images.json', JSON.stringify(result), function(error) {
    if (error) {
    console.log(error);
    } else {
    console.log('save');
    }
    process.exit(1);
    });

    }
    })
    matches(total);
    function matches(page) {
    //var url = `http://jandan.net/pic/page-${page}#comments`;
    var url = `http://jandan.net/xxoo/page-${page}#comments`;
    request({
    method: 'GET',
    url: url,
    encoding: null
    }).then(function(body) {
    var content = iconv.decode(body, 'utf-8');
    $ = cheerio.load(content);
    var matchListRow = $('.view_img_link');
    $(matchListRow).each(function(i, element) {
    var item = $(element).attr('href');
    var res_url = 'http:' + item;
    // var name = PATH + item.slice(item.lastIndexOf('/') + 1);
    result.list.push(res_url);
    // request(res_url).on('response', function(response) {
    // console.log(response.statusCode) // 200
    // }).pipe(fs.createWriteStream(name));
    });
    ep.emit('finish');
    }).catch(function(err) {
    if (err)
    return console.error(err);
    });
    }
    gutu
        54
    gutu  
       2017-10-31 13:57:14 +08:00
    反正大家就喜欢挑软柿子捏,

    煎蛋这种小站,能存活到现在也算难得了。
    z0z
        55
    z0z  
       2017-10-31 14:05:32 +08:00
    说的我也想学学如何造一个爬虫了
    Plsea
        56
    Plsea  
       2017-10-31 14:26:16 +08:00
    煎蛋太惨了 爬汤吧 2333
    helica
        57
    helica  
       2017-10-31 14:33:52 +08:00 via iPhone
    我开始爬的 h 网和 p 站…
    joker2015
        58
    joker2015  
       2017-10-31 14:56:25 +08:00 via Android
    恭喜楼主又吸引了一波仇恨(ಡωಡ)
    skylancer
        59
    skylancer  
       2017-10-31 15:04:17 +08:00   ❤️ 1
    我的天 你流量小就代表资源小了?
    我建议搜搜什么是 CC 和 DrDOS
    Chappako
        60
    Chappako  
       2017-10-31 15:16:35 +08:00
    Nostalgiaaaa
        61
    Nostalgiaaaa  
       2017-10-31 15:18:14 +08:00   ❤️ 1
    爬虫教程尽量就别发出来的。。人一多就相当于 DDoS 了
    xiejc
        62
    xiejc  
       2017-10-31 15:26:43 +08:00   ❤️ 1
    我能不能把上边的代码删了,感觉不太好😢
    silencefent
        63
    silencefent  
       2017-10-31 15:40:37 +08:00   ❤️ 4
    我实在他妈不明白,爬虫这种含量的事儿还有人炫耀?写个爬虫屌的不行了?听人家说了这样不好还爬?这些年教育都到狗肚子里去了?
    justtery
        64
    justtery  
       2017-10-31 16:37:22 +08:00
    上满的去搜 知乎爬虫。。豆瓣电影。。豆瓣读书的爬虫。。一堆一堆的。。。
    iFlicker
        65
    iFlicker  
       2017-10-31 16:43:36 +08:00   ❤️ 1
    第一,煎蛋是个小站,真的是个小站,不是百度腾讯阿里巴巴谷歌亚马逊非死不可。
    第二,你一个人流量小了,一千个人呢?一万个人呢?十万个人呢?,你知道控制频率,新手们可不知道。
    第三,你们就饶了煎蛋吧,已经是少有的摸鱼净土了。。。。。
    glacier2002
        66
    glacier2002  
       2017-10-31 17:23:37 +08:00
    欢迎来扒 btstar.info 数据 😢
    wangxiaohao
        67
    wangxiaohao  
       2017-10-31 18:31:55 +08:00
    哈哈哈哈 心疼煎蛋 1s
    Karblue
        68
    Karblue  
       2017-11-01 00:59:14 +08:00
    你家里这么多电器,我搬台电视机也没拿多少东西嘛…再说了,皇军吃你几个西瓜怎么了…… 来自 jandan。
    自己作恶还觉得理所当然。
    ajan
        69
    ajan  
       2017-11-01 10:48:51 +08:00
    求楼主的 jandan.db
    z1154505909
        70
    z1154505909  
       2017-11-01 14:51:21 +08:00
    练手找招聘,租房的网站练啊,别找煎蛋,一个小站不容易,
    还有就是新手写爬虫大多都不知道控制频率,
    只知道爬爬爬.不知道手下留情

    心疼煎蛋...
    forcecharlie
        71
    forcecharlie  
       2017-11-01 15:20:18 +08:00
    爬的人多了如果服务器资源有限就成了 DDOS 攻击了。前几年 12306 抢票插件拖垮 Github 历历在目。
    rswl
        72
    rswl  
       2017-11-01 15:41:37 +08:00
    练功房
    newworld
        73
    newworld  
       2017-11-01 20:02:05 +08:00
    明明还有很多人去爬豆瓣 哈哈哈 没人说么!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2774 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:45 · PVG 16:45 · LAX 00:45 · JFK 03:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.