2012-05-09 37 views
0

我正在写一些代码来加载和解析来自Web的HTML文档。为什么我不能用JDOM加载这个URL?浏览器欺骗?

我用JDOM像这样:

SAXBuilder parser = new SAXBuilder(); 
Document document = (Document)parser.build("http://www.google.com"); 
Element rootNode = document.getRootElement(); 
/* and so on ...*/ 

它正常工作,这样。但是,当我将URL更改为其他网站时,例如“http://www.kijiji.com”,则parser.build(...)行会挂起。

任何想法为什么它挂起?我是wondernig,如果它可能是因为kijiji知道我不是一个“真正的”网络浏览器 - 也许我必须欺骗我的http请求,所以它看起来像它来自IE或类似的东西?

任何想法很有用,谢谢!

Rob

回答

1

我觉得这里可能会发生一些事情。该firdt问题是,你不能解析普通的HTML用JDOM,HTML是 XML ....

其次,当我通过JDOM kijiji.com运行立刻得到响应HTTP_400

当我解析google.com我收到一个关于格式良好的即时XML错误。

如果你碰巧在某些时候,虽然解析XHTML,你可能会运行到这个问题就在这里:http://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic/

XHTML都有doctype引用其他文档类型等各帖后需要30秒,从加载w3c.org ....

+0

处理文档类型的方法是创建常用的永久本地缓存。 –

相关问题