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

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

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

    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 话说前辈,你对这个问题怎么看呢~:
    https://www.v2ex.com/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   ·   实用小工具   ·   5400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:44 · PVG 15:44 · LAX 23:44 · JFK 02:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.