用 nodejs 撸了个爬虫,使用 leveldb 做队列,非常简单可用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
wl879
V2EX    分享创造

用 nodejs 撸了个爬虫,使用 leveldb 做队列,非常简单可用

  •  
  •   wl879
    wl879 2017-03-25 20:32:24 +08:00 6336 次点击
    这是一个创建于 3171 天前的主题,其中的信息可能已经有所发展或是发生改变。

    搜来搜去用 nodejs 做爬虫的介绍,都是些很基础的,如果只为学习是够用了,但如果想用它来做点什么,还都得是从头写起。其实,解析这部分重头写没什么好说的,不同网站不同规则吗,但做为爬虫最基本的队列呀,去重呀等很共性的功能部分,没找到有什么 nodejs 的框架能拿来就用。 所以,所以(想介绍下自己的东西,还非得说一些是非铺垫,嗯,鄙视自己),说一个我写的很简单的框架吧。

    Crawl-pet 养一只爬虫宠物吧,已上传 npm ,安装如下

    npm install crawl-pet -g

    已开源到 Github : https://github.com/wl879/Crawl-pet

    还有一篇使用的介绍: http://www.jianshu.com/p/1b9be0df5236

    就请大家给看一看吧,怎么得,这回浏览量也的过 100 啊!

    7 条回复    2017-03-30 20:22:16 +08:00
    a87150
        1
    a87150  
       2017-03-25 21:27:27 +08:00 via Android
    过 100 了
    wl879
        2
    wl879  
    OP
       2017-03-25 23:28:01 +08:00
    呵呵,有很多是自己刷新出来的,简书里的浏览量才 50
    FEDT
        3
    FEDT  
       2017-03-26 00:59:58 +08:00 via Android
    看看
    phrack
        4
    phrack  
       2017-03-26 11:00:08 +08:00 via Android
    对 nodejs 不了解,不过既然能跑 js ,我一直好奇一个问题。

    我目前都是用 python 的爬虫,但是有一个问题, ajax 的页面,动态更新的内容只能自己去模拟请求,其实这样是非常恼人的,或者用 phantomjs ,但是也并不是那么舒服。

    nodejs 能做到自动抓取 ajax 不?一是 ajax 刷新的页面内容,二是 ajax 的网络请求。
    guokeke
        5
    guokeke  
       2017-03-26 16:33:26 +08:00 via Android
    @phrack 不能,无论是 Python 还是其他语言写的爬虫。 Ajax 写在页面指定的脚本里,想要运行脚本就需要一个 browser 环境。
    123s
        6
    123s  
       2017-03-27 09:16:55 +08:00
    妈蛋,有空要看看你的代码,怎么写
    vvaaiinn
        7
    vvaaiinn  
       2017-03-30 20:22:16 +08:00
    @phrack 你需要 phantomjs. python node 都支持的。搞一发?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1202 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:25 PVG 01:25 LAX 09:25 JFK 12:25
    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