웹 크롤러를 구축 중입니다. Having read this DNS 해상도가 느려서 DNS 확인자를 분리해야한다는 것을 알고 있습니다.Java : IP가있는 URL 열기
그래서 당신이 문자열 URLString는이 http://google.com 당신은 당신이 실제 웹 사이트 자체를 다운로드 어떻게
URL url = new URL(urlString)
InetAddress ip = InetAddress.getByName(url.getHost());
그러나 다음을 수행하여 IP로 그 변환 할 수있는 말? URL을
, 우리는 할 수 같은 단지 다우 뭔가 :
String htmlDocumentString = new Scanner(new url.openStream(), "UTF-8").useDelimiter("\\A").next();
그러나 우리가 해결 된 IP를 사용하려는 경우, 우리가 수동으로 IP와 URL을 재구성해야합니까? url.setHost()
방법이 없으며 그냥 지저분 해 보입니다. URL에서 읽기
"DNS 확인자를 구분 하시겠습니까?" 나는 그 요점을 이해하지 못한다. 예, DNS 해상도로 인해 오버 헤드가 발생하지만 "분리하는 방법"이 웹 크롤러를 더 빠르게 만드는 이유는 없습니다. –
URL 콘텐츠를로드 할 때 많은 서버가 VirtualHost를 도메인에 의존하기 때문에 가장 간단한 방법은 로컬 DNS 캐시를 사용하는 것입니다. 직접 IP를 요청하면 적합한 컨텐츠를 보유 할 수 없습니다. –