대략 5000 개의 다른 URL에 대해 HTML 소스 코드를 다운로드하기 위해 150 개의 스레드가있는 Apache HttpComponents를 사용하고 있습니다.Apache HttpComponents request.get.excute가 올바른 HTML 소스 코드를 반환하지 않습니다.
URL은 LinkedBlockingQueue
에 있으며 가능한 경우 큐에서 SourceGetterThreads
을 가져옵니다. 그런 다음 스레드는 EntityUtils.toString(HttpClient.execute().getEntity)
을 사용하여 소스 코드를 다운로드하려고 시도합니다. HTML 소스 코드의 문자열 표현은 또 하나의 LinkedBlockingQueue
에 놓이게됩니다. 여기에서 두 번째 대기열에서 가져 오는 소스 코드에서 유용한 작업을 수행 할 준비가 된 10 개의 스레드가 있습니다.
내 문제는 내가 소스 코드에서 수행중인 작업에서 오류를 발견했다는 점입니다. Matcher
을 사용하여 특정 패턴을 일치시키고 발견 된 패턴을 기록합니다. 그러나 때로는 소스 코드가 잘못되어 URL과 일치하지 않습니다 (예 : 내 자바 메모리에 저장된 소스 코드가 Chrome 또는 FireFox에서 볼 때 소스 코드와 동일하지 않음). 이것은 무작위 적으로 보이기 때문에 때로는 소스 코드가 정확하고 때로는 그렇지 않습니다.
왜이 사람인지 아시겠습니까?
: 여기에 예를 들어, 어떻게
User-Agent
값을 설정,이다. –나는 그것을 추상적으로 유지하려고 노력했고 너무 많은 것을 증명하지 않았다. 더 많은 정보를 요구하는 대신 부정적인 것에 감사드립니다. – james
변경할 수 있습니다. –