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

使用 xpath 抓取网页时遇到保留字符该怎么解决?

  •  
  •   Plumes · 2017-05-06 01:55:29 +08:00 · 1317 次点击
    这是一个创建于 2765 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,当网页内容中包含例如 < 这类保留字符时,xpath 就没法正常工作了

    比如这个网页

    <!DOCTYPE html>
    <html>
    <head>
    	<title></title>
    </head>
    <body>
    <article>
    	123<
    </article>
    <article>
    	dfsfsd
    </article>
    </body>
    </html>
    

    当想使用

    $article = $xpath->query("//article")->item(0);
    

    提取出第一个 article 元素时并不能得到正确的结果

    请问有什么办法解决或绕过么?

    第 1 条附言  ·  2017-05-06 10:50:23 +08:00
    没有找到什么比较好的解决办法,至少在 PHP 环境中,貌似所有依靠原生 XML 库的方法都会遇到这个问题,所以只能先通过正则表达式做个预处理了
    3 条回复    2017-05-06 13:46:05 +08:00
    binux
        1
    binux  
       2017-05-06 02:19:24 +08:00
    你需要一个现代的 parser
    lgh
        2
    lgh  
       2017-05-06 09:47:00 +08:00 via iPhone
    你这网页不规范……<应该转换成实体&lt;
    billlee
        3
    billlee  
       2017-05-06 13:46:05 +08:00
    你需要一个 HTML parser, 而不是 XML parser
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2809 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:46 · PVG 15:46 · LAX 23:46 · JFK 02:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.