我写了一个webcrawler,它在do while循环中调用一个3秒的网页
完全有7000个站点...我解析数据并将其保存在我的数据库中。
有时因为脚本加载了很长时间,我在浏览器中出现超时,
但在后台我继续。我在我的数据库中看到了这一点。
我可以阻止这种情况吗?..现在只要我停止网络服务器就可以了。
谢谢你,并致以最诚挚的问候。
答案 0 :(得分:0)
您的网页正在启动服务器端流程。杀死您的浏览器或关闭它不会阻止它。听起来像一个网页来控制这是错误的方法,你应该看一个连接的应用程序形式,如WinForms / WPF应用程序。有很多方法可以让它与ASP.NET一起使用,但它们并不简单。我认为你刚刚选择了错误的技术。
答案 1 :(得分:0)
从网页开始这样一个密集的,长时间运行的过程几乎不是一个好主意。有很多原因,但主要原因是:
1)如果您在浏览器中出现超时(这是您的情况),您收集的数据可能不会显示。
2)如果在浏览器中点击刷新会怎样?是否会再次启动整个过程?对于攻击者来说,这是一个容易攻击的目标,如果他想占用你所有的服务器资源的话。
3)您抓取的数据是否真的可能会发生变化,以至于您需要“实时”抓取? 99%的案例也可以在运行爬网的后台定时作业中提供,而前端只显示数据库的内容。
我会认真地建议你重新考虑你的抓取策略,使其更加可控和稳定。