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

想玩爬蟲,想用 C++ 寫,有沒有啥建議?

  •  
  •   wezzard · 2014-12-18 02:30:21 +08:00 · 4101 次点击
    这是一个创建于 3416 天前的主题,其中的信息可能已经有所发展或是发生改变。
    買了個VPS,反正閒着也是閒着。

    只搞過 iOS 開發,對 C++ 認識僅停留在 2000 年代(我 2014 年還在 new 和 delete……)。POSIX、TCP/IP、HTTP 啥的也一無所知。求入門建議。
    27 条回复    2014-12-19 10:27:14 +08:00
    msg7086
        1
    msg7086  
       2014-12-18 02:34:01 +08:00
    用python吧
    yellowV2ex
        2
    yellowV2ex  
       2014-12-18 02:36:31 +08:00
    问一下写后端的人们,你们是不是觉得写PHP很low?
    (我是前台的)
    wezzard
        3
    wezzard  
    OP
       2014-12-18 02:38:45 +08:00
    @msg7086 主要是想找個機會深入學習一下 C++,2014 年還喜歡 new 和 delete 簡直 so no face……

    @yellowV2ex 我是搞 iOS 開發的……另外我確實覺得 PHP 很 low,服務器端更加喜歡 node.js 或者 ruby on rails。
    yellowV2ex
        4
    yellowV2ex  
       2014-12-18 02:40:23 +08:00
    @wezzard 是,我以前搞AS的,现在也是iOS,还是觉得javascript类的语法写起来顺手
    msg7086
        5
    msg7086  
       2014-12-18 02:43:51 +08:00
    @yellowV2ex 我更喜欢用ruby。
    语言表现力更强,而且可以用函数式的习惯来写代码。

    @wezzard C++我还在用malloc/free呢。
    只知道有自动指针这种东西但是还没花时间去看。
    YouXia
        6
    YouXia  
       2014-12-18 03:18:01 +08:00 via Android
    如果用Cpl写的话,那就用larbin呗。但如果说想重复造轮子,那就实现个larbin吧。
    wizardforcel
        7
    wizardforcel  
       2014-12-18 08:15:48 +08:00
    cpp已经不是几年前的cpp了。只要找个http库,用啥写都无所谓。

    @yellowV2ex 不觉得php很low。我讨厌py的缩进,喜欢js。
    choury
        8
    choury  
       2014-12-18 08:30:41 +08:00
    建议就是不要用c++写
    zealic
        9
    zealic  
       2014-12-18 08:47:51 +08:00
    C++ 不适合这种任务。
    最佳选择 Python,或者任何字符串处理强的脚本语言。
    Node.js 其实也不错。
    freefcw
        11
    freefcw  
       2014-12-18 08:56:28 +08:00
    这东西的瓶颈在于网络带宽,性能反而是最不用考虑的,为了考虑开发的快速和应对变化,一般都是用python类的动态语言写
    pandada8
        12
    pandada8  
       2014-12-18 08:59:37 +08:00
    跟我一起念:Python大法好
    happywowwow
        13
    happywowwow  
       2014-12-18 09:01:58 +08:00
    跟我一起念:人生苦短,我用python
    V5YUN
        14
    V5YUN  
       2014-12-18 09:03:04 +08:00
    爬虫的重点是网络问题,网络问题的重点是异步.Pyhton和node.js有很成熟的异步模型.
    xdeng
        15
    xdeng  
       2014-12-18 09:07:27 +08:00
    C++写 会很不爽? 用go吧
    pubby
        16
    pubby  
       2014-12-18 09:18:51 +08:00 via Android
    Beanstalk
    xz
        17
    xz  
       2014-12-18 09:23:55 +08:00 via Android
    为什么不用Python呢
    pubby
        18
    pubby  
       2014-12-18 09:27:20 +08:00 via Android   ❤️ 1
    Beanstalk跑消息队列
    Node.js 或go写网络抓取
    找个nosql服务存中间数据
    mysql维护必要的目标数据
    PHP写繁琐的各类分析协调处理

    一个简单的分布式系统,几年来一直这么做的
    viaNull
        19
    viaNull  
       2014-12-18 10:07:38 +08:00
    @wezzard 既然喜欢ror和node,为啥不用这两个写爬虫

    这两个写起来比C++要方便的多
    fengchang
        20
    fengchang  
       2014-12-18 10:24:55 +08:00
    想玩爬虫就老老实实用Python写,想学C++就写点别的
    每个语言都有适合做的事,PHP写Web后端也比C++好用的多
    maemual
        21
    maemual  
       2014-12-18 10:26:43 +08:00
    赞楼上。
    感觉一帮人总是吃饱了撑得,切菜非要用青龙偃月刀。
    hdjdcyl
        22
    hdjdcyl  
       2014-12-18 10:59:58 +08:00 via Android
    @wezzard
    @pandada8
    @wizardforcel
    PHP是世界上最好的语言没有之一
    ivanlw
        23
    ivanlw  
       2014-12-18 12:07:51 +08:00
    四年前帮导师维护过c++的一个爬虫程序,多线程用pthread,正则表达库用boost里面的regex,感觉学习成本太高了,这两个东西写小程序都要调试好久,更别说写大了……所以我的想法是,除非你有很大的性能需求,不然尽量用一些high-level的语音(尤其是要有multi-threading和network还有queue这类library的支持是最方便的),Java和Python都是不错的选择,如果你要潮一点,用Golang和NodeJS也是不错的……PHP,唔,更好,毕竟是世界上最好的语言嘛
    wezzard
        24
    wezzard  
    OP
       2014-12-18 12:28:04 +08:00
    @ivanlw 多線程我準備用 Apple 的 libdispatch ……在 iOS 上用過感覺非常傻瓜,而且 ubuntu 上也有相應版本。話說我本來就是想通過這個 case 深入學習 UNIX 系統和 HTTP、TCP/IP 這些東西的。
    Lelouchcr
        25
    Lelouchcr  
       2014-12-18 12:30:11 +08:00   ❤️ 1
    jsjscool
        26
    jsjscool  
       2014-12-19 10:18:17 +08:00
    楼主用汇编吧,C++也很low的!
    jsjscool
        27
    jsjscool  
       2014-12-19 10:27:14 +08:00
    你都想用C++写了,就用C++写吧。“POSIX、TCP/IP、HTTP 啥的也一無所知。”谷歌百度+你这些年的经验,不是什么难事。
    有问题到Stack Overflow问一下,可以的话把代码放到Github,这里的牛人会给你指点的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3174 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:35 · PVG 22:35 · LAX 07:35 · JFK 10:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.