V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
youchoudeyu
V2EX  ›  问与答

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

  •  
  •   youchoudeyu · Mar 5, 2017 · 2714 views
    This topic created in 3351 days ago, the information mentioned may be changed or developed.

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

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

    https://github.com/lapwinglabs/x-ray
    https://github.com/rchipka/node-osmosis
    hanzichi
        4
    hanzichi  
       Mar 5, 2017
    youchoudeyu
        5
    youchoudeyu  
    OP
       Mar 5, 2017
    @yyfearth jsDom 能对网站的样式表进行解析吗?我觉得我想要的比如 DOM 的尺寸位置之类的,没有 css 样式渲染得到的结果也许是不正确的吧
    youchoudeyu
        6
    youchoudeyu  
    OP
       Mar 5, 2017
    @hanzichi 目前正在尝试`phantomjs-node`
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5685 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 08:54 · PVG 16:54 · LAX 01:54 · JFK 04:54
    ♥ Do have faith in what you're doing.