标题:asp采集时为什么截取不到标题
只看楼主
a768841969
Rank: 2
等 级:论坛游民
帖 子:93
专家分:45
注 册:2011-3-31
结帖率:100%
已结贴  问题点数:30 回复次数:19 
asp采集时为什么截取不到标题
a-5.asp
<%
on error resume next
'得到文件二进制数据
Function GetWebData(strUrl)
dim curlpath
dim Retrieval
  Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
  With Retrieval
    .Open "Get", strUrl, False,"",""
    .Send
    GetWebData =.ResponseBody
  End With
  Set Retrieval = Nothing
End Function
Function GetKey(HTML,Start,Last)
IF InStr(HTML,Start)>0 Then
filearray=split(HTML,Start)
IF InStr(filearray)>0 Then
filearray2=split(filearray(1),Last)
Else
Getkey=filearray(1)
End IF
GetKey=filearray2(0)
Else
Getkey="HTML中不包含"&Start
End IF
End Function

Function bytesToBSTR(Body,Cset)
Dim Objstream
Set Objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
%>

a-6.asp
<!--#include file="conn1.asp"-->
<!--#include file="a-5.asp"-->
<%
fileurl=http://mil.news.这是新浪的一个新闻页面
angde=GetWebData(fileurl)
page=bytesToBSTR(angde,"gb2312")
response.Write(page)
Title = GetKey(page,"<title>","</title>")------------这里可能有错误但是我不知道怎么改
response.write(Title)
%>
为什么用标题输不来呢??
输出来是一个空白页面。
这是怎么回事??


[ 本帖最后由 a768841969 于 2011-4-8 15:20 编辑 ]
搜索更多相关主题的帖子: 二进制 
2011-04-07 15:50
a768841969
Rank: 2
等 级:论坛游民
帖 子:93
专家分:45
注 册:2011-3-31
得分:0 
求助 求助
2011-04-07 16:34
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
得分:15 
where title='"&Title&"'",

不要设条件试试

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2011-04-08 08:19
a768841969
Rank: 2
等 级:论坛游民
帖 子:93
专家分:45
注 册:2011-3-31
得分:0 
不行啊
2011-04-08 08:38
a768841969
Rank: 2
等 级:论坛游民
帖 子:93
专家分:45
注 册:2011-3-31
得分:0 
求助
2011-04-08 15:20
dzt0001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1281
专家分:4998
注 册:2005-10-12
得分:15 
可以获取到整个页面,但标题获取不到,有可能是GetKey函数错误,我在查,稍等

----我怎能在别人的苦难面前转过脸去----
2011-04-08 16:28
a768841969
Rank: 2
等 级:论坛游民
帖 子:93
专家分:45
注 册:2011-3-31
得分:0 
谢谢
2011-04-08 16:49
dzt0001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1281
专家分:4998
注 册:2005-10-12
得分:0 
是GetKey函数写错了,改了改,能运行。但不保证在其他地方能用。

Function GetKey(HTML,Start,Last)
IF InStr(HTML,Start)>0 Then
    filearray=split(HTML,Start)
    IF InStr(filearray(1),Last)>0 Then
        filearray2=split(filearray(1),Last)
    Else
        Getkey=filearray(1)
    End IF
    GetKey=filearray2(0)
Else
    Getkey="HTML中不包含"&Start
End IF
End Function


送你一段我常用的吧

'截取字符串,1.包括起始和终止字符,2.不包括
Function strCut(strContent,StartStr,EndStr,CutType)
Dim strHtml,S1,S2
strHtml = strContent
On Error Resume Next
Select Case CutType
Case 1
S1 = InStr(strHtml,StartStr)
S2 = InStr(S1,strHtml,EndStr)+Len(EndStr)
Case 2
S1 = InStr(strHtml,StartStr)+Len(StartStr)
S2 = InStr(S1,strHtml,EndStr)
End Select
If Err Then
strCute = "<p align='center'>没有找到需要的内容。</p>"
Err.Clear
Exit Function
Else
strCut = Mid(strHtml,S1,S2-S1)
End If
End Function
 
 

----我怎能在别人的苦难面前转过脸去----
2011-04-08 16:52
a768841969
Rank: 2
等 级:论坛游民
帖 子:93
专家分:45
注 册:2011-3-31
得分:0 
为什么不能保证在其他地方能用,我看网页的标题都不是在<title></title>吗  另外这个标题还有多出来几个字怎么去掉
外交部:对日本向太平洋排放核废液表示关切_新闻中心_新浪网----去掉
2011-04-08 17:05
dzt0001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1281
专家分:4998
注 册:2005-10-12
得分:0 
因为这个GetKey函数写的不规范,我也没有仔细改,有可能遇到其他情况还会出错。

在加title=replace(title,"_新浪军事_新浪网","")不就替换了。不过新浪每个新闻专题都不一样

或者这样title = GetKey(page,"<title>","_")

 

[ 本帖最后由 dzt0001 于 2011-4-8 17:32 编辑 ]

----我怎能在别人的苦难面前转过脸去----
2011-04-08 17:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-335889-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.154092 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved