以下是代码:
<%
出错时继续下一步
昏暗 objXMLHTTP, xml
设置 xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.打开“GET”,“ http://chanye.finance.sina.com.cn/yj/2005-01-05/236914.shtml ”, False
xml.发送
tmpstr= xml.responseText
ep=clng(instr(1,tmpstr,"meta_data2"))+18
tmpstr=替换(tmpstr,vbcrlf,"")
tmpstr=替换(tmpstr,chr(9),"")
tmpstr=替换(tmpstr,chr(32),"")
mydata=mid(tmpstr,1,ep)
recfilen=server.MapPath("tempstr.txt")
设置 Astream=Server.CreateObject("Adodb.Stream")
Astream.type=2
Astream.Mode = 3
Astream.open
Astream.CharSet = "GB2312"
Astream.Position =0
Astream.Writetext mydata,1
Astream.SaveToFile recfilen,2
Astream.close
设置 Astream1=Server.CreateObject("Adodb.Stream")
Astream1.type=2
Astream1.模式 = 3
Astream1.CharSet = "GB2312"
Astream1.open
Astream1.LoadFromFile(recfilen)
assp=Astream1.size
crttmpstr=Astream1.ReadText(Assp)
Astream1.close
sp1=clng(instr(1,crttmpstr,"meta_data1"))+16
ep1=clng(instr(sp1,crttmpstr,"NAME=meta_data2"))-7
lth1=ep1-sp1
newdata=mid(crttmpstr,sp1,lth1)
%>
<html>
<头>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<风格>
身体{
字体大小:12px
}
TD{
字体大小:12px
}
</风格>
<title>用Asp获取Dll加密新闻内容</title>
<表宽度=“540”边框=“0”对齐=“中心”cellpadding=“0”cellspacing=“0”>
<tr>
<td>更新时间:<%=now %>获取内容长度:<%=lth1 %>
字节注意要使用http://127.0.0.1/Ip1HtmlView.dll你得先下载这个Dll文件,怎么下不用多说吧?!
<对象 id=HtmlIp1View 代码库=http://127.0.0.1/Ip1HtmlView.dll#version=1,0,1,14 classid=CLSID:D854FC15-D3EA-496A-B2A0-A772A3DE1D09>
<param name="meta_data1" value="<%=newdata %>">
<参数名称=“meta_data2”值=“”>
<参数名称=“meta_data3”值=“”>
<参数名称=“meta_data4”值=“”>
<参数名称=“meta_data5”值=“”>
<参数名称=“meta_data6”值=“”>
<参数名称=“meta_data7”值=“”>
<参数名称=“meta_data8”值=“”>
<参数名称=“baseurl”值=“111”>
<参数名称=“随机”值=“111”>
</对象></td>
</tr>
</表>
</正文>
</html>
对代码很多的说明:之所以要使用Adodb.Stream,是因为直接取得的内容始终达到想要的效果,ep的位置达到了预期的长,而我尝试用instrb,midb等函数同样得到另一种酸人迷惑的结果,所以无奈下出此下策,还望高手指点(哎哟,我怎么感觉不溜函数的哦)。当然只针对当前地点有效,其他的适当修改就行,甚至可以直接生成分页,并记录到数据库,成为自己的,用上面的东西加写数据库应该就够了吧。
要防止Dll被下载也难,对于IIS来是说可以加个.dll的ISAPI扩展,执行文件只要选个Dll文件动作限制为“空”(什么都行,其实乱输入就可以了。)要是DLL不为外站工作嘛,就不敢乱说。防止新闻被窃取曼哈顿象这样的窃取方法,检查request.ServerVariables("HTTP_REFERER")不是站的外面哄本就可以了。
另外,由于本人大学没毕业,又是学打铁的,所以肯定有很多垃圾的地方,请不吝指正,谢谢。