当前位置: 首页 > >

网络爬虫中高效率的URL索引

发布时间:

在爬虫工作过程中,需要把爬过的URL做成索引,之后每次分析到新的URL时与爬过的URL匹配


一般可以使用字符串匹配,但如果有几十万,*偻蚴菔蹦兀科ヅ涔袒岱浅;郝


这时可以使用这个算法,用哈希对URL计算一个值,然后存在一个足够大的数组中


而哈希值对应该数组的索引,在新的URL匹配时,对URL进行哈希计算,计算的值 为数组的索引


这样每次匹配速度会极快,下面是代码的实现





#include
#include

int url[10000];

int Get_Url_HashIndex(char *Url,int Num)
{
int hash = 0;

int i;

char *b= (char*)&hash;

for(i=0;i {
b[i % 4] = b[i % 4] ^ Url[i];
}

return hash % Num;
}


void main()
{

int urlindex = Get_Url_HashIndex("httn",10000);

printf("hash:%d
",urlindex);

if (url[urlindex] == 0)
{
printf("首次匹配");
url[urlindex] = 1;
}

urlindex = Get_Url_HashIndex("http://www.baidu.com",10000);
if (url[urlindex] == 0)
{
printf("测试匹配");
url[urlindex] = 1;
}
}







友情链接: