爬了三大门户网站的股票频道,网站已开源 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
newghost

爬了三大门户网站的股票频道,网站已开源

  •  
  •   newghost
    newghost 2016 年 1 月 18 日 5938 次点击
    这是一个创建于 3750 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://anynb.com 是开源 ourjs 的一个 DEMO 网站,原来只爬了一些知名的博客,后来发现还是有些人访问的。

    现在加入了三大门的网站股票频道新闻,为了避免法律风险只爬了标题和链接,内容指向原文

    最新开源代码在 0.1.1 的分支    https://github.com/newghost/ourjs/tree/0.1.1 可能不稳定

    稳定简单版的代码可查看默认分支 https://github.com/newghost/ourjs/tree/0.1.x

    28 条回复    2016-01-20 18:27:58 +08:00
    yh7gdiaYW
        1
    yh7gdiaYW  
       2016 年 1 月 18 日
    时间字体太难看了啊
    aabbccli
        2
    aabbccli  
       2016 年 1 月 18 日
    @yh7gdiaYW 同感,整个网站的字体看起来不美丽
    figofuture
        3
    figofuture  
       2016 年 1 月 18 日
    只是爬爬新闻还好,先马克下。
    GhostEX
        4
    GhostEX  
       2016 年 1 月 18 日
    有意思啊,整站花了多久做出来的?
    master13
        5
    master13  
       2016 年 1 月 18 日
    所以,你认为只要把内容指向原文就能“避免法律风险”吗?
    newghost
        6
    newghost  
    OP
       2016 年 1 月 18 日
    @yh7gdiaYW
    @aabbccli

    默认字体是微软雅黑,改成默认的了;  时间是斜的,扶正了
    newghost
        7
    newghost  
    OP
      2016 年 1 月 18 日
    @master13

    如果这都有风险, HackNews 早就关站了吧?
    fising
        8
    fising  
       2016 年 1 月 18 日
    有什么意义吗。
    newghost
        9
    newghost  
    OP
       2016 年 1 月 18 日
    @GhostEX

    这个项目比较久了,花了一个月的时间用 redis 重写了一下……
    Andy00
        10
    Andy00  
       2016 年 1 月 18 日
    想求教一下题主是如何保证抓取每个页面都能拿到标题?是统一用 h1 标签抓取的吗?
    newghost
        11
    newghost  
    OP
       2016 年 1 月 18 日
    @fising

    说实话,这个网站一个月前上线的,期间0推广,但我发现 Alexa 排名一直在增长,对有些人应该是有意义的
    newghost
        12
    newghost  
    OP
       2016 年 1 月 18 日
    @Andy00

    每个网站的DOM都是不一样的,用的是 css 选择器
    Andy00
        13
    Andy00  
       2016 年 1 月 18 日
    还是不太懂,求教题主细说一下
    我之前的做法都是把整个页面拿下来然后用用正则表达式提取,所以需要去找每个网站的页面 html 代码然后写对应的正则,感觉这种做法效率太低了,求教更高效的做法
    onion83
        14
    onion83  
       2016 年 1 月 18 日
    那个进度条对于视频网站才有意义,一般的文字网站我觉得太晃眼了。
    newghost
        15
    newghost  
    OP
       2016 年 1 月 18 日
    @Andy00

    anynb 全部使用 Javascript(DOM),用 Javascript 操作DOM再简单不过了。你可以参考以下技术

    https://github.com/atom/electron

    https://github.com/nwjs/nw.js

    http://phantomjs.org/


    有空我会整理一篇文章出来……
    newghost
        16
    newghost  
    OP
       2016 年 1 月 18 日
    @onion83

    我就觉得这个效果还稍微绚点……
    Andy00
        17
    Andy00  
       2016 年 1 月 18 日
    学习了学习了!
    我之前都是用 java 写,感觉入了个坑。。。决定转投 js 了
    magicdawn
        18
    magicdawn  
       2016 年 1 月 18 日
    可以直接从 chrome devtools 复制出 selector, 放到 cheerio 的 selector 里...完美
    其他语言, BeautifulSoup / CsQuery / goquery 应该也可以, 估计要改改... 这个 node 的 cheerio 真是无敌了
    newghost
        19
    newghost  
    OP
       2016 年 1 月 18 日
    @magicdawn

    网易的 DOM 是动态渲染出来的, cheerio 估计不合适
    cheneydog
        20
    cheneydog  
       2016 年 1 月 18 日
    下一步添加市场情绪分析吧。
    magicdawn
        21
    magicdawn  
       2016 年 1 月 19 日
    @newghost 那这个 DOM 动态渲染你是咋做的~

    我觉得 DOM 动态渲染分两种, 一种是 ajax 接口然后去渲染, 一种是淘宝那样, 内嵌 js 数据, 去渲染
    前面一种直接用它接口就好, 后面估计要去找 js
    newghost
        22
    newghost  
    OP
       2016 年 1 月 19 日
    @cheneydog

    估计有难度,刚加了个新闻联播
    newghost
        23
    newghost  
    OP
       2016 年 1 月 19 日
    @magicdawn

    参看 15 楼,使用基于浏览器的解决方案
    magicdawn
        24
    magicdawn  
       2016 年 1 月 19 日
    @newghost
    这种估计会先看下 [nightmare]( http://www.nightmarejs.org/)
    newghost
        25
    newghost  
    OP
       2016 年 1 月 19 日
    @magicdawn

    写法挺高级的,估计就是把 phantomjs 封装了一下
    newghost
        26
    newghost  
    OP
       2016 年 1 月 19 日
    @magicdawn

    嗯,是基于 Electron 的
    junging
        27
    junging  
       2016 年 1 月 19 日
    kelaodo
        28
    kelaodo  
       2016 年 1 月 20 日
    赞一个
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2804 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 59ms UTC 13:22 PVG 21:22 LAX 06:22 JFK 09:22
    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