人人网可以死,当初的回忆不能死,爬取人人网相册 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
XueSeason
V2EX    程序员

人人网可以死,当初的回忆不能死,爬取人人网相册

  •  
  •   XueSeason 2017-04-07 10:27:01 +08:00 14978 次点击
    这是一个创建于 3170 天前的主题,其中的信息可能已经有所发展或是发生改变。

    发现人人网死了好久,于是写了个简单的爬虫把想要的相册都全部爬下来,顺便将代码开源,希望能帮助到大家。

    https://github.com/XueSeason/renren-album

    使用方法

    # 登录操作 ./app.js -l -u 49****[email protected] -p ***** # 下载本人相册 ./app.js -d # 下载指定用户 id 相册 ./app.js -d -i 4413**450 
    55 条回复    2017-04-10 09:15:13 +08:00
    isphone
        1
    isphone  
       2017-04-07 10:41:58 +08:00 via iPhone   1
    人人网死了?
    likuku
        2
    likuku  
       2017-04-07 10:46:53 +08:00   1
    因为人人网必须注册才能访问,所以从来就没注册过。
    XueSeason
        3
    XueSeason  
    OP
       2017-04-07 10:51:30 +08:00   1
    @isphone 人人快死了。
    ZeoKarl
        4
    ZeoKarl  
       2017-04-07 10:52:44 +08:00 via iPhone   1
    懒得注册+1
    minamike
        5
    minamike  
       2017-04-07 10:56:34 +08:00
    我的相册都是黑历史 早就被我删掉注销了
    Khlieb
        6
    Khlieb  
       2017-04-07 11:00:17 +08:00 via Android   1
    @isphone 半死不活了吧
    Lothar
        7
    Lothar  
       2017-04-07 11:07:23 +08:00
    试用了下,挺好用的,只是莫名中断了几次,然后只能从头重新下载。。。感觉可以维护一个 json 存下哪些已经下载了,断了就不用重下了。然后异常是不是没捕获全,所以才挂了几次。总体还是挺不错的,给 Star 。
    XueSeason
        8
    XueSeason  
    OP
       2017-04-07 11:11:56 +08:00
    @Lothar 因为是快速做出的小 Demo ,并没有考虑太多因素。后面我会慢慢完善的。还是非常感谢。
    loryyang
        9
    loryyang  
       2017-04-07 11:35:48 +08:00
    赞~我去研究下 LZ 的代码
    lixile
        10
    lixile  
       2017-04-07 11:46:40 +08:00
    。。当初 还玩得多 人人有很多有趣的故事 能爬吗
    ys0290
        11
    ys0290  
       2017-04-07 11:48:00 +08:00 via iPhone   1
    前几天还登陆过,杳无人烟……
    XueSeason
        12
    XueSeason  
    OP
       2017-04-07 11:51:33 +08:00
    @lixile 理论上,模拟登录后,只要你能看到的,基本都可以爬。目前我只是觉得相册这一块比较重要,其实也可以爬动态。
    XueSeason
        13
    XueSeason  
    OP
       2017-04-07 11:53:38 +08:00
    @loryyang 谢谢,如果你能研究出其他的玩法,欢迎 PR
    fancymax
        14
    fancymax  
       2017-04-07 12:03:29 +08:00 via iPhone
    强烈支持,能否把动态爬下来
    isphone
        15
    isphone  
       2017-04-07 12:35:37 +08:00
    @XueSeason 芭莎娱乐公号发文"人人网将关闭" 被判赔 2 万余元 http://news.sina.com.cn/sf/news/ajjj/2017-01-25/doc-ifxzusws0232659.shtml 祝楼主平安
    yuyu2140
        16
    yuyu2140  
       2017-04-07 13:02:08 +08:00
    刚登录下人人,找了点回忆
    xenme
        17
    xenme  
       2017-04-07 13:04:02 +08:00   1
    很早已经已经用脚本,删掉了所有信息,然后弃用了,因为没法注销。
    coderwan
        18
    coderwan  
       2017-04-07 13:30:36 +0:00
    技术改变生活
    realpg
        19
    realpg  
    PRO
       2017-04-07 13:31:20 +08:00   3
    上同学,找人人
    hjdtl
        20
    hjdtl  
       2017-04-07 14:00:09 +08:00
    请问怎么开启? Windows 里我用终端执行命令会报错。
    findex
        21
    findex  
       2017-04-07 14:04:58 +08:00 via iPhone
    @XueSeason 还有多久?这就挂了啊
    yangxin0
        22
    yangxin0  
       2017-04-07 14:18:29 +08:00
    我写过一个大规模人人爬虫程序, 一个建议不要使用混淆的代码,登录这一块使用的 RSA(非标准)对密码进行加密, 密钥的长度 256.

    class RSAPubKey:
    def __init__(self, exponent, modulo):
    self.expOnent= self.encode(exponent)
    self.modulo = self.encode(modulo)

    def encode(self, data):
    return int(data, 16)


    class RSAEncrypt:
    def __init__(self, key):
    self.key = key

    def encrypt(self, text):
    text = self.encode_text(text)
    cipher = self.fast_exp(text, self.key.exponent, self.key.modulo)
    return format(cipher, 'x')

    def debug_bignum(self, num, prefix):
    print("==> %s <%s>" % (prefix, format(num, 'x')))

    def fast_exp(self, base, exponent, modulo):
    result = 1
    if expOnent== 0:
    return result
    while exponent > 0:
    if exponent & 1 == 1:
    result = result * base % modulo
    exponent /= 2
    base = (base * base) % modulo
    return result

    def better_hex(self, num):
    while num > 0:
    pass

    def encode_text(self, text):
    if isinstance(text, int):
    return text
    result = 0
    for c in text[::-1]:
    result = result << 8
    result += ord(c)
    return result

    if __name__ == '__main__':
    expect = "24cf15330c44dae8846d386b97be97b278b42b2e54894c16dd682a8046c99bd8"
    expOnent= "10001"
    modulo = "8cf5d22c6857c041a50947cf178b1519d5ab7befe7e523a0c93220c0a44593a9"
    key = RSAPubKey(exponent, modulo)
    rsa = RSAEncrypt(key)
    cipher = rsa.encrypt("helloworld")
    print "cipher: %s" % (cipher)
    print "expect: %s" % (expect)
    cxbats
        23
    cxbats  
       2017-04-07 14:19:42 +08:00
    我之前也写过一个类似的东西,不过是爬某个好友的状态和图片...
    https://github.com/WillSkywalker/Shikhandi
    yangxin0
        24
    yangxin0  
       2017-04-07 14:20:30 +08:00
    @cxbats 前几周换了接口,你这个应该无法登录了
    GOOD21
        25
    GOOD21  
       2017-04-07 14:25:36 +08:00
    好使,感谢!
    XueSeason
        26
    XueSeason  
    OP
       2017-04-07 15:10:06 +08:00
    @hjdtl 没测试过 Windows 环境,其实只要稍微改下 app.js ,在 windows 下也是可以跑的。
    XueSeason
        27
    XueSeason  
    OP
       2017-04-07 15:10:59 +08:00
    @yangxin0 因为抓包的时候,不太确定这个加密过程是 RSA 。请问你是如何得知的?
    Nobitasean
        28
    Nobitasean  
       2017-04-07 15:15:08 +08:00
    注册要巴拉巴拉好多东西
    fsgmhoward
        29
    fsgmhoward  
       2017-04-07 15:18:55 +08:00 via iPhone   1
    还有一个开心网 也快死了吧
    Quaintjade
        30
    Quaintjade  
       2017-04-07 15:39:47 +08:00   1
    注册过人人网最烦的就是会被大街网骚扰,都是千橡旗下的,资料通用。
    根本没注册过大街网,还是会经常收到邮件“某某,你有一个职位邀请,点击查看”,点开就是个注册页,根本没有职位邀请。

    话说前些天还收到大街网阴魂不散的垃圾骚扰短信,“ XXX 公司招聘负责人亲自给您发了一封职位邀请,可优先面试,接受: d-j.me/xxxxxxx 回复 TD 退订”
    Kusanagi
        31
    Kusanagi  
       2017-04-07 15:43:39 +08:00   1
    @minamike 人人没法完全注销,注销了还可以重新启用
    laoyuan
        32
    laoyuan  
       2017-04-07 15:50:40 +08:00
    是大图吧?
    minamike
        33
    minamike  
       2017-04-07 16:30:57 +08:00
    @Kusanagi 反正黑历史删光了 无所谓(摊手
    loryyang
        34
    loryyang  
       2017-04-07 16:40:37 +08:00
    @XueSeason 研究了很久,没用过 node js ,搞起来太吃力了。。
    yangxin0
        35
    yangxin0  
       2017-04-07 16:44:30 +08:00
    @XueSeason 看参数名字 e 、 m 这种事 RSA 才会使用的
    loryyang
        36
    loryyang  
       2017-04-07 16:45:38 +08:00
    @cxbats 壮哉我大 python ,我还是研究这个代码吧。
    wclebb
        37
    wclebb  
       2017-04-07 17:15:27 +08:00   1
    人人网注册过但没有进去发过一次。
    不过人人网的确应该提供备份。

    学 FaceBook 结果自己死了。
    感觉好可怜。
    SkyEcho
        38
    SkyEcho  
       2017-04-07 17:21:07 +08:00
    一直纳闷一个问题,为什么移动互联网时代,没有一家校园社交做得好的公司,校园社交到底是不是伪命题
    nevin47
        39
    nevin47  
       2017-04-07 17:38:25 +08:00
    为什么我怎么折腾都会报这个错……
    nevin47
        40
    nevin47  
       2017-04-07 17:38:40 +08:00   1
    ‘’‘
    module.js:472
    throw err;
    ^

    Error: Cannot find module 'commander'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/nevin47/Downloads/renren-album-master/app.js:6:17)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    ‘’‘
    laoyuan
        41
    laoyuan  
       2017-04-07 18:01:40 +08:00
    同 LS ,我忘了 node 怎么用了,是不是先要执行什么安装命令?
    laoyuan
        42
    laoyuan  
       2017-04-07 18:05:04 +08:00
    @nevin47 npm install
    XueSeason
        43
    XueSeason  
    OP
       2017-04-07 18:08:12 +08:00
    @nevin47 首先要安装好最新的 node 环境,注意版本要求。然后进入项目,执行 npm install
    eseeker
        44
    eseeker  
       2017-04-07 19:59:58 +08:00 via Android
    @a302800411 就是,腾讯的朋友网也是半死不活。
    mingyun
        45
    mingyun  
       2017-04-07 23:47:16 +08:00   1
    后悔人人账号注销了,找不回相册了
    qtjay
        46
    qtjay  
       2017-04-08 09:48:32 +08:00
    qtjay
        47
    qtjay  
       2017-04-08 09:49:28 +08:00   1
    @mingyun 重新登陆就可以了,人人网不删数据的
    mingyun
        48
    mingyun  
       2017-04-08 10:00:33 +08:00
    @qtjay 果然可以重新登录,感谢,不过好奇注销账号它是怎么注销的
    stackboom
        49
    stackboom  
       2017-04-08 10:00:58 +08:00   1
    今天刚刚收到人人的广告邮件。 人人直播, 看到上面的妹子一张张网红脸....
    vamxmen
        50
    vamxmen  
       2017-04-08 13:58:07 +08:00 via Android
    这个下载别人相册时需要权限么?
    XueSeason
        51
    XueSeason  
    OP
       2017-04-08 20:00:05 +08:00
    @vamxmen 有权限查看的照片都能下载到。没有权限的当然没办法。
    boter
        52
    boter  
       2017-04-09 15:16:59 +08:00
    人人死不了,人家改做互联网金融了,股票大涨很多了
    botr
        53
    boter  
       2017-04-09 15:22:52 +08:00
    @boter 噢,没涨,只是调整 ADS 和 A 类股的比例了
    leisure
        54
    leisure  
       2017-04-10 07:47:40 +08:00
    password 中有括号的时候报错。。
    XueSeason
        55
    XueSeason  
    OP
       2017-04-10 09:15:13 +08:00
    @leisure 可是尝试在 Shell 中用引号。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5189 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 08:38 PVG 16:38 LAX 00:38 JFK 03:38
    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