现在想用Java做网络爬虫,模拟浏览器进行Get操作由于涉及到访问某个网站主机下的多个链接,所以想把替换主机名换成IP地址。但问题是有的网站不能通过IP访问,仅仅可以通过域名访问例如:
例一:www.163.com
获取的一个IP地址为60.191.80.142
通过IP地址无法访问
在浏览器中相应为Access Denied例二:www.chinaview.cn
获取的一个IP地址为202.108.119.196
通过IP地址无法访问
在浏览器中长时间无响应问题一:
若把主机名替换为IP地址,则面临解决上述2种问题。
若不替换IP地址,如何才能避免快速解析主机名的问题呢?问题二:
在例二中通过IP地址访问,但长时间未返回(包括HTTP头部)
尝试过
connection.setConnectTimeout(3000);

System.setProperty("sun.net.client.defaultConnectTimeout", "3000");
这两种方式设置超时,但在Java 1.6中没有任何作用。
如何解决这个问题,使得程序不会僵死这里呢
多谢多谢

解决方案 »

  1.   

    域名解析不是把域名替换成IP那么简单,而且一个IP地址下可以通过设置不同的主机头存在多个网站,用IP来访问网站是行不通的。
    3秒超时太短了,应该设得更长一些,你每次打开一个网站都可以在3秒内得到相应吗?
      

  2.   


    虽然没做过,但是本人谷歌浏览器访问网易都三秒以上,10M带宽。第一个问题我也不知道。做出来向你请教但是如果使用conn重新生成链接一定重新解析了域名。setFollowRedirects---
    useCaches--是否能减少时间呢!