我正在为大学开发一个项目,我需要一些关于开发的建议。它是一个网站,显示链接,图像等其他网站的信息。
我已经为网站准备了以下模型。
Home.aspx页面,显示来自表(sql server)的数据。
我编写了一个爬虫(在c#中),它可以抓取(获取数据)所需的网站数据。
我想要一些方法,我可以在后端运行爬虫一段时间间隔,它可以在表中插入更新。我希望我可以在我的数据库中获取更新信息,以便Home.aspx显示更新的信息。 (就像谷歌新闻网站的缩小版本一样)
我想在共享托管环境中托管wesbite(即第三方托管服务提供商公司,可以使用IIS平台)
我向不同的.NET论坛和社区发布了simliar情况,他们提出了许多不同的内容,例如
创建一个Web服务(真的有必要吗?)
使用WCF
创建一个控制台应用程序并运行Windows任务sheduler(可以使用asp.net(win forms网站)和共享托管)
在本地计算机上运行搜寻器并相应地更新数据库。 (不,我想在网上一切)等等
请建议我一个明确的出路,以便我完成任务。请提出适合我项目的优化技术和方法。
...等待
...谢谢
答案 0 :(得分:3)
您的共享主机约束确实会影响技术限制。
理论上,托管爬虫的最佳方式是Windows服务,因为您可以利用Windows服务配置。服务总是启动,可以在启动时自动启动,在事件日志中写入错误,可以在失败后自动重启......
然后,你Home.aspx将成为IIS中的常规网站。
如果您真的呆在共享主机上(无法设置服务),我会将爬虫作为在您的应用程序启动时运行的模块。
问题是,如果您的网站未被使用,IIS应用程序池将无法永久存在,并且可能会阻止爬网程序。它是可配置的,但我不知道在共享主机中有多少。
在IIS 7.5中,考虑在应用程序预热时启动模块
最后,如果您需要间隔时间(如午夜的每一天)运行爬网程序,如果您的共享主机不允许您设置任务计划,请考虑Quartz Framework,它允许您在内部执行任务调度你的申请(没有操作系统的干预)
答案 1 :(得分:2)