我正在使用具有 150 个线程的 Apache HttpComponents 来下载大约 5000 个不同 URL 的 HTML 源代码。
URL 包含在 a 中LinkedBlockingQueue
,并SourceGetterThreads
尽可能从队列中获取。然后一个线程将尝试使用EntityUtils.toString(HttpClient.execute().getEntity)
. 然后将 HTML 源代码的字符串表示形式放在另一个LinkedBlockingQueue
上,我有另外 10 个线程准备好对它们从第二个队列中获取的源代码执行有用的工作。
我的问题在于我注意到在源代码上执行的工作中有错误。我Matcher
用来匹配特定模式并记录找到的模式。但是有时源代码不正确,与 URL 不匹配(即保存在我的 java 内存中的源代码与在 Chrome 或 FireFox 中查看时的源代码不同)。这似乎是随机的,因此有时源代码是正确的,有时不是。
有人知道这是为什么吗?