一个用 scala 写的人人网分析工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
gaocegege
V2EX    分享创造

一个用 scala 写的人人网分析工具

  •  1
     
  •   gaocegege
    gaocegege 2015-06-10 08:46:47 +08:00 5009 次点击
    这是一个创建于 3780 天前的主题,其中的信息可能已经有所发展或是发生改变。

    scala-renren

    Github: scala-renren

    Example

    好友关系图样例如下,名字已经全部和谐Orz

    example

    第 1 条附言    2015-06-11 10:29:58 +08:00
    Update: 使用了一个布局算法,YifanHuLayout,增加了图的可读性,继续尝试其他布局以及color, size的选择。

    http://gaocegege.com/scala-renren/headless_simple.svg
    42 条回复    2015-06-11 16:30:12 +08:00
    FrankFang128
        1
    FrankFang128  
       2015-06-10 08:47:56 +08:00 via Android
    可惜了这个工具了,被用分析人人网。。。
    gaocegege
        2
    gaocegege  
    OP
       2015-06-10 08:52:24 +08:00
    @FrankFang128 你是说scala么
    FrankFang128
        3
    FrankFang128  
       2015-06-10 08:57:14 +08:00 via Android
    @gaocegege 我是说人人网是个垃圾站
    gaocegege
        4
    gaocegege  
    OP
       2015-06-10 08:58:55 +08:00
    @FrankFang128 哈哈,人人真是越来越不好用了!
    shoumu
        5
    shoumu  
       2015-06-10 11:26:56 +08:00
    数据怎么来的
    yuelang85
        6
    yuelang85  
       2015-06-10 11:41:00 +08:00
    @shoumu +1

    同问,数据怎么出来的?是有现成的接口提供,还是人人支持通过用户id直接拿到好友信息?
    yueyoum
        7
    yueyoum  
       2015-06-10 11:45:32 +08:00
    时间过的真快,

    一下想到了 我两年前的项目:
    https://github.com/yueyoum/renren-relationship
    gaocegege
        8
    gaocegege  
    OP
       2015-06-10 13:08:54 +08:00
    @yueyoum 我同学就是看到了你的项目才问我能不能做一个scala的,做的时候还有参考你的项目呐~哈哈
    gaocegege
        9
    gaocegege  
    OP
       2015-06-10 13:09:37 +08:00
    @shoumu Apache的HttpClient做爬取
    gaocegege
        10
    gaocegege  
    OP
       2015-06-10 13:10:00 +08:00
    @yuelang85 用户名密码拿到uid,然后就可以直接爬了
    yueyoum
        11
    yueyoum  
       2015-06-10 13:11:47 +08:00
    @gaocegege

    这也是我的荣幸啊。

    想想也是悲哀, 没上人人网,已经一年多了。 当年 还是那个校内网。。。
    gaocegege
        12
    gaocegege  
    OP
       2015-06-10 13:13:43 +08:00
    @yueyoum 哎, 自从大学以来,同学纷纷都弃了人人玩微信了,现在600多好友一天更新的新鲜事也就一页。。。
    yuelang85
        13
    yuelang85  
       2015-06-10 14:47:22 +08:00
    @gaocegege 我是说,你拿到别人的id,也可以获得他的好友吗?
    gaocegege
        14
    gaocegege  
    OP
       2015-06-10 16:00:08 +08:00
    @yuelang85 嗯,是的呢
    Gem
        15
    Gem  
       2015-06-10 19:40:23 +08:00
    scala&play 和 ruby&rubyonrails 外貌上很相似啊
    gaocegege
        16
    gaocegege  
    OP
       2015-06-10 20:05:00 +08:00
    @Gem 刚刚接触scala,没用过play框架= =
    jadetang
        17
    jadetang  
       2015-06-10 20:19:28 +08:00
    scala中基本上看不到return的
    gaocegege
        18
    gaocegege  
    OP
       2015-06-10 20:26:55 +08:00
    @jadetang 嗯,毕竟函数式嘛,感觉写起来很顺手!
    gaocegege
        19
    gaocegege  
    OP
       2015-06-10 20:28:12 +08:00
    @jadetang 不过说起来,scala的Actor虽然理念上很棒,但是用起来好艰难啊= =
    jadetang
        20
    jadetang  
       2015-06-10 20:55:18 +08:00
    @gaocegege 你可能还用不到actor,假设你拿到的是List[String], 直接List.par.map()就能获得并发了
    gaocegege
        21
    gaocegege  
    OP
       2015-06-10 21:27:51 +08:00
    @jadetang map function是并发的?
    coetzee
        22
    coetzee  
       2015-06-10 21:47:41 +08:00
    @FrankFang128 道出了我等的心声
    tabris17
        23
    tabris17  
       2015-06-10 21:54:23 +08:00
    人人还没倒闭啊?!
    gaocegege
        24
    gaocegege  
    OP
       2015-06-10 22:27:38 +08:00
    @tabris17 ...这
    jadetang
        25
    jadetang  
       2015-06-10 22:52:04 +08:00
    @gaocegege List.par.map() 这个par代表Parallel
    gaocegege
        26
    gaocegege  
    OP
       2015-06-10 22:56:18 +08:00
    @jadetang 哇,受教了。回去试试
    gaocegege
        27
    gaocegege  
    OP
       2015-06-10 23:07:01 +08:00
    @jadetang 话说前辈,你对这个问题怎么看呢~:
    t/197394
    jsyangwenjie
        28
    jsyangwenjie  
       2015-06-10 23:28:27 +08:00
    策策么么哒!!
    yxssfxwzy
        29
    yxssfxwzy  
       2015-06-10 23:30:48 +08:00
    两年前用python做过类似的,可以再用gephi跑些图算法,我记得里面有歌社群划分算法,挺有意思的
    gaocegege
        30
    gaocegege  
    OP
       2015-06-10 23:41:30 +08:00
    @yxssfxwzy 嗯,印象最深的那个把图上所有点变成一个圆形的那个布局算法,很壮观啊~
    gaocegege
        31
    gaocegege  
    OP
       2015-06-10 23:42:34 +08:00
    sketch33
        32
    sketch33  
       2015-06-10 23:43:57 +08:00
    900多好友,今天一天产生的新鲜事我数数……还不到20条
    laibinbin
        33
    laibinbin  
       2015-06-11 02:02:37 +08:00 via iPhone
    我在中国台湾表示从来没见过谁用人人。
    bbx
        34
    bbx  
       2015-06-11 03:58:14 +08:00
    gaocegege
        35
    gaocegege  
    OP
       2015-06-11 09:29:00 +08:00
    @sketch33 喜闻乐见啊,现在基本都是一些微博搬运工了
    gaocegege
        36
    gaocegege  
    OP
       2015-06-11 09:29:34 +08:00
    @laibinbin 。。。要是我在没有墙的地方,肯定也不会用啦
    yxaaa123
        37
    yxaaa123  
       2015-06-11 10:10:28 +08:00
    问一个问题。。。用Activator建项目一直都卡住,用过各种方法都不行,你们怎么弄的?
    gaocegege
        38
    gaocegege  
    OP
       2015-06-11 10:32:25 +08:00
    @yxaaa123 我用的是sbt哎,就先根据他的项目目录结构建立对应的目录,然后往里面加文件就OK了~
    yxaaa123
        39
    yxaaa123  
       2015-06-11 13:38:36 +08:00
    @gaocegege 但是要下载jar包么,就好像卡在这了
    gaocegege
        40
    gaocegege  
    OP
       2015-06-11 14:44:42 +08:00
    @yxaaa123 啊哈,不需要手动下载啊,依赖都写在build.sbt里了,只要sbt compile就会自动下载才对!
    woostundy
        41
    woostundy  
       2015-06-11 15:18:19 +08:00
    人人分站一个xss漏洞报告了半年了也没修复。
    gaocegege
        42
    gaocegege  
    OP
       2015-06-11 16:30:12 +08:00
    @woostundy 233333好有趣
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1256 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 23:47 PVG 07:47 LAX 16:47 JFK 19:47
    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