为什么我不能用JDOM加载这个URL?浏览器欺骗?

时间:2012-05-09 19:05:33

标签: java html url browser jdom

我正在编写一些代码来加载和解析来自网络的HTML文档。

我正在使用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(...)行会挂起。

知道它挂起的原因吗?如果可能是因为kijiji知道我不是一个“真正的”网络浏览器,那我肯定是因为我不得不欺骗我的http请求,所以看起来它来自IE或类似的东西?

任何想法都很有用,谢谢!

罗布

1 个答案:

答案 0 :(得分:1)

我认为这里可能会发生一些事情。最小的问题是你不能用JDOM解析常规HTML,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有一个引用其他文档类型等的文档类型。每个文档需要30秒才能从w3c.org加载....