V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
youchoudeyu
V2EX  ›  问与答

如何用 nodeJs 解析外部链接网页的 DOM 信息?

  •  
  •   youchoudeyu · 2017-03-05 12:32:58 +08:00 · 1946 次点击
    这是一个创建于 2580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,最近想试试用 nodeJS 做个爬虫,用了 cheerio 却发现 cheerio 做不到解析出 DOM 的一些特征信息,如尺寸大小和 DOM 元素结点的位置什么的,记得 phantom 可以当浏览器进行渲染?是否可以做到在 node 环境下采集外部链接,如百度首页的文档结构,获取其中的 DOM 属性信息?

    6 条回复    2017-03-05 16:03:25 +08:00
    yyfearth
        1
    yyfearth  
       2017-03-05 14:43:19 +08:00 via iPhone
    PhantomJS 还是一个浏览器 如果只是需要基本的解析功能 jsdom 应该可以
    jiangzhuo
        2
    jiangzhuo  
       2017-03-05 14:43:34 +08:00
    phantomjs 可以执行 js 但是不能进行 css 渲染里面没有渲染引擎
    n
        3
    n  
       2017-03-05 15:33:36 +08:00   ❤️ 1
    说起 NodeJS 写爬虫,让我想起这两个项目,可能对楼主的问题起不到什么帮助,但也许对其他朋友是有用的。

    https://github.com/lapwinglabs/x-ray
    https://github.com/rchipka/node-osmosis
    hanzichi
        4
    hanzichi  
       2017-03-05 15:37:10 +08:00
    youchoudeyu
        5
    youchoudeyu  
    OP
       2017-03-05 15:46:16 +08:00
    @yyfearth jsDom 能对网站的样式表进行解析吗?我觉得我想要的比如 DOM 的尺寸位置之类的,没有 css 样式渲染得到的结果也许是不正确的吧
    youchoudeyu
        6
    youchoudeyu  
    OP
       2017-03-05 16:03:25 +08:00
    @hanzichi 目前正在尝试`phantomjs-node`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3319 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:35 · PVG 21:35 · LAX 06:35 · JFK 09:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.