我做的是抓取文件/网站的代理IP /端口的应用程序。该实现纯粹是异步的,以使其以我想要的速度流动。该应用程序的全部目的是找到“活着”的代理。
要检查一个代理是否还活着,我正在为一个特定的网站制作一个HttpWebRequest
,如果成功,它还活着,如果不是那么死了。
的问题
一个例子:
首先运行:
- 爬行与30K代理的文本文件。
- 与每个代理进行
HttpWebRequest
检查它是否“活着”。 - 查找30个活着的代理。
第二轮:
- 爬与30K代理同一个文本文件。
- 与每个代理进行
HttpWebRequest
检查它是否“活着”。 - 找到0个代理,它们还活着。
如果我等待大约10分钟,那么第二次运行将产生大约30个活跃的代理。否则它会暂时超时,并将其标记为死亡。
正如你可能已经想通了,我的问题是为什么第二次运行不会产生相同或接近第一次运行的结果。
我已经改变了以下内容:
ServicePointManager.DefaultConnectionLimit = int.MaxValue
,并ServicePointManager.MaxServicePoints = int.MaxValue
这是我的网络的一个基本的限制,或者是别的东西玩吗?
如果您使用3rd/4th/5th/...请求,结果如何?这个问题是否解决了手/端口异常? – Gusdor