解决常见伪静态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

时间: 03-26

解决常见伪静态url去重的相关文章

网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用

前言: 最近被网络爬虫中的去重策略所困扰.使用一些其他的"理想"的去重策略,不过在运行过程中总是会不太听话.不过当我发现了BloomFilter这个东西的时候,的确,这里是我目前找到的最靠谱的一种方法. 如果,你说URL去重嘛,有什么难的.那么你可以看完下面的一些问题再说这句话. 关于BloomFilter: Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员.如果检测

Atitit.404错误解决标准流程and url汉字中文路径404错误resin4 resin chinese char path 404 err解决

Atitit.404错误解决标准流程and url汉字中文路径404错误resin4 resin chinese char path 404 err解决 1. #原因解析 1 2. #解决方式 2 3. 输出图片流... 2 4. --code 2 5. 参考 3 1. #原因解析 查看累挂发送d url,,,俄使用的是ff..它把url转换成个 http://localhost/img/QQ%E6%88%AA%E5%9B%BE20140401175433.jpg 发送出去..每汉字3个%字符,

常见数据库url和driver

oracle driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:数据库名"sqlserver driver="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名&

selector实现点击图片切换(解决常见的点击无效问题)

实现效果图:       图片未点击前                         图片点击后 selector的实现方法其实很简单,只需3步: 第一步:选择两张图片效果图放在res/drawable-hdpi中,放在mdpi也可以 第二步:在mdpi文件夹中新建xml文件,命名为selector.xml.注意名字selector后面会引用到. 在selector.xml文件中,完成代码: <?xml version="1.0" encoding="utf-8&qu

URL去重

import socket dictlist ={}; def ReadHost(): hosts = []; obn = open('d:/sss.txt', 'rb'); for line in obn: #sometime you should filter \r\n line = line.strip('\n') hosts.append(line) obn.close(); return hosts; def SysDNS(): hosts = ReadHost(); for host

Ajax的底层实现--使用Ajax实现无刷新登录实例--解决ajax中URl参数带中文的乱码问题

  1.jsp代码 第一部分(html代码):前端页面 <div id="login"> 用户名: <input type="text" id="userName"/> <!--用户名--> 密码: <input type="password" id="psw"/> <!--密码--> <input type="submit&quo

常见的数组去重方法

方法一 filter()+ indexOf( )   //思路:主要是利用filter()方法过滤掉重复的元素 function ArrayToHeavy(arr) { //过滤掉原数组中重复的数字,返回新的数组 return arr.filter((item, index)=> { //遍历出数组中数字第一次出现的下标,与数字所在数组的下标相比较, //为true就是第一次出现 return arr.indexOf(item) === index }) } let arr =[1,21,2,2

Git 项目上传至github入门实战并解决常见错误

1.Git GUI 首先,在push到github的项目必须先建立版本(即creat  repository的名字一样),一般是先pull下来,再push(为了防止有其他人提交了代码,而你却不知道,造成的一些冲突) 进行第三步时,必须写提交描述,否则报错,如下 最后一步,需要填写目的路径,直接github上粘贴相应版本路径即可,还必须输入github的名字和密码 成功后,如图: 下面写一下,一般push失败的原因,其实上面也已经提到,(为了防止有其他人提交了代码,而你却不知道,造成的一些冲突)所

在Apache服务器中配置ThinkPHP伪静态URL

ThinkPHP 作为国内最流行的一个PHP框架,由于她开发应用的便捷,便吸引越来越多的开发者开始使用她来做项目的底层架构.像我PHP基础并不是很好,也可以使用她来完成一个像模像样的项目. 下面便分享一些使用ThinkPHP需要了解的东西. 去掉 URL 中的 index.php ThinkPHP是单一入口的,默认的 URL 不是很友好.但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache 里面的 .htaccess 文件,更是可以定制出人性化的更利于 SEO 的