关于估价函数的实现-------基于python语言(网络爬虫)

来源:互联网 发布:js 0除以0 nan 编辑:程序博客网 时间:2024/05/01 18:53

    估价函数是一个对特定链接进行评价的函数,符合相关规则的,进行权值的增加。而规则怎么定?权值加多少?这又是我们要讨论的问题。根据那篇论文,我们可以知道规则不过为对链接本身以及对链接文本中存在的链接的规则。对于链接本身我们应该判断这个链接在不在门户网站的范围内,而门户网站当然是事先放在缓冲区里面了。假如在缓冲区里面找不到,我们就访问该链接文本里面的外部链接,然后判断这些链接有没有我们要的目标网站的关键字,有则原始链接的权值加10,没有则不加。假如在缓冲区里面找到了,则我们就访问该链接文本里面的内部链接,访问到的链接里面有关键字,则原始链接权值加20,没有则不加。至于判断某个链接是否为外部链接或内部链接,我们可以通过连接上面的域名判断,即从原始链接中提取该链接的特有域名,假如提取失败则直接过滤该链接。

     现在大概说一下用python实现的方式,首先用字典这一数据结构来存储网址,其中dict[Url]=key,Url是链接,而key是链接对应的权值。先用python定义一个函数,

def GetDomain(Url):                   #获取链接的域名

     First=Url.find('/')

     First=First+2

     Second=Url.find('/',First)

     Third=Url.find('.')

     Third=Third+1

     Result=Url[Third:Second]

     return Result

 

def JudgeUrl(OriginalUrl,NowUrl):                       #判断该链接上是否存在原始链接的域名

     Result=GetDomain(OriginalUrl)

     num=NowUrl.find(Result,0)

     if num==-1:

          print  "该链接不属于内部链接。"

          return 0                                               #不存在返回0

     return 1                                                    #存在返回1

 

def JudgeKeyWords(Url,KeyWords):

     for Sublist in KeyWords:

            num=Url.find(KeyWords)

            if not num==-1:

                 print   "该链接存在关键字。"

                 return 1                                       #存在返回1

     return 0                                                   #不存在返回0

 

通过以上三个函数分别提取域名,判断域名,判断关键字,基本上已经实现估价函数的基本流程。最后只需将符合要求的链接放到字典里面去,再进行排序,我们就能按权值的大小顺序访问相应的链接,实现以最快的速度访问到我们想要的网站。