首页 > 代码库 > 解决常见伪静态url去重

解决常见伪静态url去重

常见的伪静态链接:

1、http://xue.zbj.com/live/livecollege/list/237

解决方法,以 / 分割参数,生成list,用一次pop之后(比较倒数第二个参数是否相同),以此递进

 1 #url形式为http:// 开头
 2 for i in ulist:
 3     line = i.split(/)[3:]
 4                 if len(line) > 0:
 5                     line.pop()  # 一次pop 比较 除倒数第一个参数外,其余参数是否相同,以 / 分割
 6                     key = set(line)
 7                     if key <= param1:
 8                         continue
 9                     else:
10                         param1 = param1.union(key)
11                         links.append(i)

2、url中带有日期 2017-03-27或者2017/03/27 ,用 {int}替换,避免造成干扰

if re.search(r"\d{4}\/\d{1,2}\/\d{1,2}|\d{4}-\d{1,2}-\d{1,2}", i):
m = re.sub("\d{4}\/\d{1,2}\/\d{1,2}|\d{4}-\d{1,2}-\d{1,2}", ‘{int}‘, i)
if m in line_date:
continue
else:
line_date.append(m)

3、英文单词和数字夹杂在一起,同时数字的变化 影响查询结果,故针对数字过滤

elif re.match(r‘\d+‘, i):  # 默认url中数字出现次数相同的,去重
n = re.findall(r‘\d+‘, i)
if len(n) in params:
continue
else:
params.append(len(n))

伪静态链接的情况多种多样,遇到一种情况,可以针对性的解决

代码详情:github

解决常见伪静态url去重