新闻手动采集原理
优采云 发布时间: 2020-08-26 04:35新闻手动采集原理
一、原理新闻手动采集系统实际上是通过了某种方式调用其它网站上的网页。即把数据源的数据(图片,网 页及其他文件)抓取到本地,经过各类处理后显示到页面上或则储存进数据库。 我们可以通过这些程序,完成过去一些好像完全不可能实现的任务,比如说把某个站的页面偷粱换 柱后弄成自己的页面,或者把某个站的一些数据(文章,图片)保存到本地数据库中加以借助。 优点:无须维护系统,因为程序中的数据来自其他网站,它将随着该网站的更新而更新;可以节约 大量的服务器资源,一般程序就几个文件,所有网页内容都是来自其他网站。比如新闻歹徒程序,很多都 是调用了sina 的新闻网页,并且对其中的html 进行了一些替换,同时对广告也进行了过滤。 缺点:不稳定,如果目标网站出错,程序也会出错,而且,如果目标网站进行升级维护,那么劫匪 程序也要进行相应更改;速度慢,因为是远程调用,速度和在本地服务器上读取数据比上去,肯定要慢一 法:可以调用xml中的xmlhttp 组件进行实现,我们可以通过XML 中的XMLHTTP 组件调用其它 网站上的网页。 实现过程:1、获得数据源 2、对获得的数据进行整理 1、获得数据源(ASP) 利用函数:getHTTPPage(url) 作用:输入url 目标网页地址,返回值getHTTPPage 是目标网页的html 代码 原程序: functiongetHTTPPage(url) dim Http set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",url,false Http.send() exitfunction end getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")set http=nothing err.Clearend function 2、对获得的数据进行整理借助函数:adodb.stream 组件 中获得的数据是一些html乱码进行转化替换等。
原程序1:(乱码转化) FunctionBytesToBstr(body,Cset) dim objstream set objstream Server.CreateObject("adodb.stream")objstream.Type objstream.Openobjstream.Write body objstream.Position CsetBytesToBstr objstream.ReadTextobjstream.Close set objstream nothingEnd Function SetobjRegExp NewRegexp setmm=objRegExp.Execute(str) EachMatch 原程序3:(使用replace方式对数据进行替换) Replace(Body,"源数据","要替换的数据")Body Replace(Body,"url","url.Asp?id" 1、分析网址,找到循环分页的规律2、根据网址抓取网页,并将内容进行分离 3、处理信息,过滤信息,并将抓取的信息写入库中 4、自动循环下一个