【发布时间】:2015-03-16 13:01:15
【问题描述】:
我使用在 .net 4.5 上运行的 C# 控制台应用程序随机每 50-90 秒抓取一个站点以获取数据。我向网站发布了几个值,并根据返回的值启动了一些其他过程。问题是在大约一千次点击之后,我得到了一个看起来像 DNS 错误的东西。在尝试修复它之前,我试图首先找出问题的根源。以下是我在日志中看到的一些错误:
- 无法解析远程名称
- 无法连接到远程服务器
- 解析值时遇到意外字符
- 无法从传输连接中读取数据 连接被远程主机强行关闭。
- 无法从已建立的传输连接读取数据 连接已被主机中的软件中止。
大约 60% 的时间我遇到了第一个错误。剩下的 40% 分配给上面列出的其余错误。这些问题是由我正在抓取的网站还是由我端的 DNS 服务器或其他原因引起的?出于所有实际目的,只要我将自动点击之间的间隔保持在我正在做的 45 秒以上,我正在抓取的网站就可以了。我下载的数据平均每次点击大约 30KB。请帮助我了解可能出现的问题以及我可以尝试解决的问题。
【问题讨论】:
-
如果您以 50 到 90 秒的间隔访问该站点,我会很惊讶地看到 DNS 错误。 DNS 条目应在本地缓存。正如克林特在他的回答中所建议的那样,该网站可能会阻止您。也有可能您未能清理某些资源,并且在大约 1,000 次点击后,您的程序遇到了资源耗尽。
标签: c#-4.0 web web-scraping screen-scraping