【问题标题】:jsdom: mixed-case parsingjsdom:混合大小写解析
【发布时间】:2011-12-27 08:19:37
【问题描述】:

我将 jQuery 与 jsdom (0.2.10) 一起使用。由于某种原因,node.exe (0.6.5.1) 在处理诸如此类的 HTML 时永远不会返回:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head></HEAD>
  <body></BODY>
</HTML>

解析代码为:

var request = require('request'),
    jsdom = require('jsdom');

request({ uri:'http://localhost/test.html' }, function (error, response, body) {
  jsdom.env({
    html: body,
    scripts: ['http://code.jquery.com/jquery-1.7.1.min.js'],
    done: function (err, window) {
      var $ = window.jQuery;  
      console.log('node.exe should get terminated after this line but does not.');    
    }
  });
});

对标签名称使用相同的大小写可以按预期工作(即 node.exe 返回)。但是由于我无法控制我正在解析的 HTML,我想知道是否有办法解决这个问题。此外,body.toLowerCase() 有助于终止 node.exe,但这不是一个可行的解决方案,因为我需要保留文本节点的原始大小写。

谢谢。

【问题讨论】:

  • 你能举一个你正在运行的jsdom代码的例子吗?
  • 这可能在 jsdom 的最新版本中已修复;我们已经完成了大量的 HTML 解析升级。

标签: jquery node.js screen-scraping jsdom


【解决方案1】:

node-htmlparser 模块中有一个错误。解析

<html><head></head><body>foo</body></html>
<html><head></HEAD><body>foo</BODY></HTML>

每行产生不同的结果。

Here 是我对感兴趣的人的拉取请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 2012-03-17
    • 2015-02-24
    • 1970-01-01
    • 2018-03-11
    相关资源
    最近更新 更多