asp 抓取函数

<%
function gethttppage(url)
dim http
'调用XMLHTTP组件创建一个对象并进行出设置
 set http=server.createobject("msxml2.xmlhttp")
 '通过get方法向服务器 发送命令
 http.open"get","url,false
 http.send()
 '判断程序运行成功
 if http.readstate<>4 then
   exit function
   end if
 '-------------------
 '对服务器返回的数据进行处理
 gethttppage=bytestobstr(http.responseBody,"GB2312")
 '释放对象,节约资源
 set http=nothing
 if err.number<>0 then err.clear
 end function
 ''''''''''处理抓取回来的数据需要调用adodb.stream组件并惊醒初始化设置,有下面一段代码来完成
 function BytesTostr(body,Cset)
 dim objstream
 set objstream=server.createobject("adodb.stream")
 objstream.type=1
 objstreammode=3
 objstream.open
 objstream.write body
 objstream.position=0
 objstream.type=2
 objstream.charset=cset
 bytestostr=objstream.readtext
 objstream.close
 set objstream=nothing
 end function
 ''--------------------------
 function  newstring(wstr,strng)
 newstring=instr(wstr,stng)
 end functiion
 
 
 ''''定义一、写需要使用到的变量
 dim url, html,start,over,b,str,str1,i,j,str2,usename
 '指定抓取数据的地址
 url=http://macao.7m.cn/soccer/show_soccer.aspx
 '调用gethttppage 函数,将函数返回值给 strRet,strRet保存我们抓取回来的源代码
 strRet=gethttppage(url)
 '调用newstring 对字符串进行处理
 start=newstring(strRet,"电视")
 over=newstring(strRet,"备注")
 '''调用mid截取字符串并复制给strret
 strret=replace(strRet,"new array")
 '调用split函数处理字符串strret以叔祖的形式村入strret
 for i=2 to Ubound(strRet)
 '提取一行,把以分割的数据村如叔祖str
 str=split(strret(i),",")
 '获得叔祖最大的下标
 j=ubound(str)
 for k=0 to j
 if k=0 then
    str(k)=replace(str(k),"(","")
    end if
  if k=j-1 then
    str(k)=replace(str(k),")","")
    end if
  str(k)=replace(str(k),'','')
  ''''字符串处理结束存入数据库
  '初始化 recordset 对象
  set rs=server.createobject("adodb.recordset")
  '初始化sql语句
  sql="select * from data where (id is null)"
  rs.open sql,conn,1,3
  '开始添加数据
  rs.addnew
  '判断数据类型 j=2 的时候是联赛的比赛节目
  if j=2 then
   rs("type")=str(0)
   rs("str1")=str(1)
   rs("str2")=str(2)
   rs("datetoday")=date()
   end if
  'j>2 and j<8 说明数据为联赛名称
  if j>2 and j<8 then
  rs("type")=str(0)
   rs("str1")=str(1)
   rs("str2")=str(2)
   rs("datetoday")=date()
   end if
   if j>8 then
   rs("type")=str(0)
   rs("str1")=str(1)
   rs("str2")=str(2)
   rs("num1")=str(3)
   rs("name1")=str(4)
   rs("num2")=str(5)
   rs("score1")=str(6)
   rs("num3")=str(8)
   rs("name2")=str(9)
   rs("score2")=str(10)
   rs('datetoday")=date()
   rs("flag_updown1")=0
   rs("flag_show1")=0
   rs("flag_updown2")=0
   rs("flag_show2")=0
   end if
  
   rs.update
   '关闭记录
   rs.close
   '显示数据是否添加数据库,如果运行正确,则给出提示
   m=i-1
   response.write m
   response.write("ok!<br>")
   next
   conn.close
   set conn=nothing
  

 
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值