t;Stocks prices fall</a><a href="/news/8095.asp">Ne w movies today</a><a href="/news/8096.asp">Bush and&nb sp;Gore to debate tonight</a><a href="/news/8097.asp"> Fall TV lineup</a><!--end headlines--></BODY></HTML>
在这个页面内,我们只关心位于“put headlines here”和 “end headlines”这 两个标记之间的东西。你可以构建一个只返回该区域查找结果的功能设置:
Function GetText(strText, strStartTag, strEndTag)
dim intStart
intStart = instr(1, strText, strStartTag, vbtextcompare)
if intStart then
intStart = intStart + len(strStartTag)
intEnd = InStr(intStart + 1, strText, strEndTag, vbtextcompar e)
GetText = Mid(strText, intStart + 1, intEnd - intStart&n bsp;- 1)
else
GetText = " "
end if
End Function
按照上面构建ITC控件的例子,你可以很容易地将strHTML中的“ <!--put headlines here-->”和 “<!--end headlines-->”作为参数传 送到GetText中。
要注意,用于开始和结束的标记都不一定要是实际的HTML专用标记——它们可以是你想使用的任何文本界 定符。在通常情况下,你不容易找到好的HTML标记来界定搜寻区域。你只能使用比较方便称手的标记——例如 ,你的首尾标记可以分别如下:
strStartTag = "/td><td><font face="arial" size=&q uot;2"><p><b><u>"
strEndTag = "<p></td></tr><tr><td><o:ums>&quo t;
一定要确定搜索的是HTML页中比较独特的标识,这样你才可以准确地获得你需要的东西。你也可以按照你 所返回的文本部分中的链接进行搜寻,不过如果你不知道那些页面的格式,你的网络蜘蛛将无功而返。
五、保存信息
在大多数情况下,你会要求将收集到的信息保存在一个数据库中,以备以后使用。你的需求也许包括很广 泛的内容,但是在此之前,你要记住以下几件事:
在你的数据库中查找最新信息
如果你经常使用网络蜘蛛去查找一个站点内的新闻标题,你要先确定比较新的标题已经存在于数据库内。 然后将其与网络蜘蛛返回的结果相比较,只添加更新过的部分。这样可以防止你保存一大堆重复数据。
更新信息
也许你根本就不想从外部向数据库中添加新信息。比如,如果你维护的是一个美国各州人口的网上索引, 你只需要在数据库内部更新——你将不需要在表格内插入新的信息。
保存所需信息
如果你在查找标题,要确定你也同时查找了该标题指向的链接,并将其保存下来。如果没有链接,你 也应该建立一个。例如,如果我从www.yoursite.com查找标题,并在www.mysite .com演示,而该标题与一篇在站点之外的文章有链接,那么我必须先保存http://www.you rsite.com这一链接,然后再保存其它链接到数据库内,这些链接才可以正常访问。
六、结论
我们已经简要介绍了如何构建一个比较完整的网络蜘蛛。所有的基本功能都已涉及。现在你需要做的就是 再在里面加上你自己的东西。
这一类功能将被应用在一个COM对象或者一个独立的应用软件内。在ASP中设置这项功能非常方便, 但是你应该将你的编码移到另外的地方,以提高速度和安全性。而且这样也可以令其更容