【问题标题】:Multiline attributes with jsdom带有jsdom的多行属性
【发布时间】:2013-03-16 22:32:21
【问题描述】:

可以用jsdom获取多行属性的值吗(我用的是Node.js+JQuery)?

要抓取的网站包含以下 HTML:

<li><a data-title="<strong>hello world
this is a test</strong>" href="example.org</strong>">A link</a></li>

不幸的是,这被解析为

<li><a data-title="data-title"><strong>hello world
this is a test</strong>' href="example.org">A link</a></li>

所以我无法提取标题和 href 属性,例如通过 JQuery:$("a").attr("data-title").

有什么想法吗?

【问题讨论】:

    标签: javascript node.js web-scraping screen-scraping jsdom


    【解决方案1】:

    是的,这是jsdom 解析器中的一个错误。这是因为它没有使用完全符合 HTML5 的解析器。您可以看到此类错误仍未解决:

    1. https://github.com/tmpvar/jsdom/issues/494
    2. https://github.com/tmpvar/jsdom/issues/482

    您可以尝试cheerio进行抓取。

    【讨论】:

    • Cheerio 似乎也因多行属性而窒息:-/。我想我会改用机械化。
    猜你喜欢
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2022-08-15
    相关资源
    最近更新 更多