关于ASP使用服务器采集文章及图片

尝试使用ASP构建网页内容采集系统,解决远程图片获取及超时问题,但最终因效率低下放弃。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的网站开了有一段时间了。

http://www.9ppk.com

发现自己手工添加信息十分辛苦。

看别人的PHP采集系统用的很爽。

也想弄个采集系统,但是好像真没什么人用asp做采集

而且asp的采集效率怎么样,我也不知道。

于是开始动手了。

其实asp采集原理很简单,

使用xmlhttp访问指定页面,把文章读取,然后使用正则表达式,选出自己需要的内容,最后保存到自己的数据库中。

这里有两个问题

采集的时候如果目标页面访问错误,使用Msxml2.XMLHTTP,没有超时限制,那么服务器会挂掉的。

所以需要使用MSXML2.ServerXMLHTTP,设置XmlHttp.SetTimeOuts 10000, 10000, 15000, 15000就可以了

第二个问题是9ppk.com是做网页图标打包下载的,网页图标总得有预览图片,

图片肯定也得采集回来,否则,别人网站图片删了,我的页面上也全是“大坑”了

采集图片也是用MSXML2.ServerXMLHTTP的。只是读取的是文件流,XmlHttp.ResponseStream.

需要使用ado的stream,把文件保存在服务器上。

关键问题差不多解决了,花了不小功夫可以做采集了。

但是程序一运行,傻眼了,速度好慢呀。采集个1000篇文章,不知道要等到什么时候了。还不定有自己手动快呢。

于是放弃了,还是老老实实自己一篇一篇文章添加吧。

用 ajax + asp.net 采集文章 试验型的项目。 原先用多线程来采集,但是觉得多线程采集要显示采集进度很麻烦。 后来改为单线程,边采集边显示进度。又发现出现采集错误的时候不方便作停止。 干脆用ajax 加 asp.net 服务端来采集。 发现有点好处,以后作断点续采方便,可以用cookies 记录当前进度。 我已经把采集规则从数据库里面剥离出来,用xml 将就着用,以后再写入数据库里面保存。 ================== 发现低级错误,请自己修改 Ajax.js 文件 // JScript 文件 function AjaxClass() { this.XmlHttp = null; try { this.XmlHttp = new XMLHttpRequest(); } catch (FFError) { try { this.XmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (NewIEError) { try { this.XmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (IEError) { this.XmlHttp = false; } } } if (this.XmlHttp == null) { alert("浏览器不支持AJAX"); return; } this.RequestUrl = ""; this.Method = "get"; this.IsAsyn = true; this.ContentType = "text/html"; this.Content = null; this.ProcessDataEvent = processData; this.StateChangeEvent = handleStateChange; this.SendRequest = function() { this.XmlHttp.onreadystatechange = this.StateChangeEvent; { this.XmlHttp.open(this.Method, this.RequestUrl, this.IsAsyn); if (this.Method.toLowerCase() == "post") { this.XmlHttp.setRequestHeader("Content-Type", this.ContentType); } this.XmlHttp.send(this.Content); } } function handleStateChange() { if (this.XmlHttp.readyState == 4) { if (this.XmlHttp.status == 200) { this.ProcessDataEvent(); } } } function processData() { } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值