一种地理信息瓦片爬虫程序的检测应对方法及装置与流程
- 国知局
- 2024-11-25 15:04:58
本发明属于地理信息,更具体地,涉及一种地理信息瓦片爬虫程序的检测应对方法及装置。
背景技术:
1、地理信息是一种带有地理空间位置的数据,瓦片化是对连续范围地理信息的进行空间切分而形成的离散化的数据组织方式,地理信息瓦片数据集即为离散化的地理信息瓦片的数据集合。地理信息瓦片将地理信息数据范围划分形成多个瓦片单元的二维阵列,对于有k个层级、m个列、n个行的瓦片集合记为(lk,cm,rn)。以(l,c,r)标识一个具体的地理信息瓦片,l表示层级的比例尺,c和r分别表示从原点开始为瓦片单元的纵向列编号和横向行编号。
2、提供地理信息瓦片服务,是地理信息在web应用场景下以http协议方式实现共享的主要方式之一。由于地理信息瓦片是一种数据资源,也具有生产要素价值。地理信息数据的服务提供者与数据使用者存在不一致的目的:数据服务提供者希望地理信息数据内容是“可用而不可拿”、“可用而不可再分发”、“可以使用局部区域数据而非下载全部数据”;数据使用者则可能希望尽可能多的使用数据,也许是能够超出数据服务提供者原本目的,甚至进行数据下载、数据再分发。因此数据使用者可能采用爬取行为,即利用爬虫程序从客户端通过http连续请求瓦片,以积少成多的方式,从web服务器上获得空间上连续的瓦片。数据使用者的此类行为与数据服务提供者的期望相违背,可能导致数据提供商的利益受损。
3、对于地理信息瓦片集(lk,cm,rn),k越大表示地图比例尺越大,该层级瓦片内容的地理信息精确度越高,其连续范围的地理信息的价值也越高。
4、地理信息瓦片爬取行为,一般是指通过计算机程序连续请求(达到一定时间跨度)地理信息在线瓦片,达到获取空间连片(达到一定面积)地理信息数据的行为,将这种连续爬取地理信息数据的程序定义为爬虫程序。如果这种爬取行为并不是数据提供者授权的,则定义为非授权爬取。
5、为维持地理信息数据服务提供者的原本期望,保护数据服务提供者利益,需要对数据使用者从客户端通过http连续请求瓦片的爬取行为进行诊断发现、防范更大范围数据被爬取、对客户端形成限制和警告。
6、当前地理信息在线服务中,相关技术手段的现状情况如下:
7、1)常规地理信息服务基础软件不含用户访问行为特征检测。常规地理信息服务基础软件(如supermap、arcgis server、geoserver等)可以发布地理信息瓦片,但是不具有用户行为特征的检测技术。因此如果数据使用者(客户端)通过爬虫程序爬取上述软件发布(supermap等)的地理信息瓦片,数据提供者无法检测到爬虫程序及其来源,也无法对爬虫程序的行为作出有效应对。
8、2)采用地理信息瓦片水印及其检测技术。在地理信息瓦片中加入带有特征的附加信息(例如数据的权属单位、应用目的、使用单位),这种附加信息被称为水印,当数据服务使用者从web服务端请求瓦片时,水印随着瓦片一起被发送到客户端,如果数据提供者认为数据被非预期使用(包括被爬取),可以对数据使用者所获得的数据进行检测,如果检测出带有数据提供者所加入的水印信息特征,则证明数据提供者获得的数据来自于数据服务者。但是水印技术是一种爬取后的“事后监测行为”,并且要求数据使用者的接受对疑似非授权数据的检测。
9、3)采用在时段内限定访问次数的控制方法。例如百度地图、天地图等在线地图服务平台,授权用户被限定了每日瓦片访问次数的上限,用户每日可访问瓦片的次数较大通常规定为1万次或几万次。数据服务程序仅仅是在达到可访问的次数后再进行访问限制,因此如果数据使用者用来获取连续的地理信息瓦片,仍然可能出现数据被爬取的情况,1万次的请求可能导致1万个地理信息瓦片已经被爬取存储在客户端。同时,这种限制用户访问次数的目的混淆了大访问量用户和爬取数据行为。用户被限定禁止访问,可能不是爬取地理信息瓦片的行为,而只是访问量大。爬取连续空间的地理信息瓦片可能导致访问量大,但访问量大并不一定是有爬取瓦片的行为。因此该技术最主要的缺陷是,没有考虑到被爬取的地理信息瓦片在空间上具有连续性。
10、综上,现有技术中的地理信息瓦片爬虫程序的检测主要还有如下的缺陷:
11、1)不能发现爬虫的爬取行为;
12、2)发现爬取行为的取证条件太复杂;
13、3)不能及时地发现爬取行为;
14、4)为避免瓦片被爬取,可能错误地限定了访问量大的客户端;
15、5)已被爬取的瓦片数据,在客户端能够轻易地被利用。
技术实现思路
1、发明目的:本发明的目的是为了解决现有技术中的不足,提供一种地理信息瓦片爬虫程序的检测应对方法及装置,在面向地理信息服务过程中, 能够及时发现用户爬取地理信息瓦片的行为,并限制用户非授权爬取的行为,保障数据提供者的利益,同时保障地理信息瓦片服务可用。
2、技术方案:本发明所述的一种地理信息瓦片爬虫程序的检测应对方法,包括:
3、s1、构造瓦片的请求响应程序;
4、s2、检查用户访问瓦片的历史记录;
5、s3、时间聚合行为判别;
6、s4、空间聚合行为判别;
7、s5、暂停输出可用瓦片并生成警告。
8、在一些实施方式中,步骤s1具体包括:
9、基于web服务器构建应用程序,接受用户http请求信息后,从瓦片文件集中读取瓦片,写入响应内容返回给客户端;同时为请求用户建立身份标识,基于内存数据库构建用户访问瓦片的历史记录队列,支持按用户查询访问瓦片的历史记录。
10、在一些实施方式中,步骤s2具体包括:
11、请求响应程序拦截用户u对地理信息瓦片请求,对各个用户的每一次瓦片请求均写入瓦片访问记录队列;按照用户u和请求瓦片的层级l,在瓦片访问队列中进行查询,如果查询结果为空则认为未检测到爬虫程序,检测结束;如果瓦片访问的查询结果不为空,则转入步骤s3。
12、在一些实施方式中,步骤s3具体包括:
13、针对用户u在最近的时间窗口t内对层级l的瓦片访问记录进行时间聚合,将时间离散化为一个时间步长step,在这个时间窗口t内判断是否每个时间步长都有切片访问行为,且访问的总切片个数达到了上限tt,如果是,则认定为时间上符合爬虫行为特征,并转入步骤s4;如果否,则认为未检测到爬虫程序,检测结束。
14、在一些实施方式中,步骤s4具体包括:
15、针对用户u对层级l在时间窗口t内的瓦片访问记录进行空间聚合,根据访问切片的空间相邻性,利用dbscan方法进行空间连片聚合,找出聚合瓦片个数最大的簇,判断最大簇包含的切片数量是否达到了上限ts,并判断最大簇包含的切片集合所代表的椭球面积总和是否超过了上线s,如果上限ts和上线s同时满足,则认为空间上符合爬虫特征,并转入步骤s5。
16、在一些实施方式中,所述椭球面积的计算过程包括:
17、利用瓦片角点坐标算子将瓦片计算出四角角点经纬度坐标,再通过椭球面积计算算子按瓦片四角角点经纬度坐标计算获得每个瓦片的椭球面积,各瓦片面积汇总累加后获得最大簇的椭球面积总和。
18、在一些实施方式中,步骤s5具体包括:
19、暂停提供正确瓦片而是输出警告瓦片,按照正常瓦片图像大小构造空白图像,直接在图像文件中写入文字警告内容。
20、在一些实施方式中,还包括步骤s6:加入噪点干扰客户端利用已爬取瓦片:
21、向客户端伪装成继续提供地理信息可用瓦片,让爬虫程序以为还在获取正常瓦片;以警告瓦片为基础,在瓦片图像中数据加入随机噪点,形成伪装瓦片。
22、另一方面,本发明还公开了一种地理信息瓦片爬虫程序的检测应对装置,包括:
23、瓦片请求响应程序模块:接受用户http请求信息后,从瓦片文件集中读取瓦片,写入响应内容返回给客户端;同时为请求用户建立身份标识,基于内存数据库构建用户访问瓦片的历史记录队列;
24、用户访问瓦片历史记录模块:请求响应程序拦截用户u对地理信息瓦片请求,对各个用户的每一次瓦片请求均写入瓦片访问记录队列;按照用户u和请求瓦片的层级l,在瓦片访问队列中进行查询;
25、时间聚合行为判别模块:针对用户u在最近的时间窗口t内对层级l的瓦片访问记录进行时间聚合,将时间离散化为一个时间步长step,在这个时间窗口t内判断是否每个时间步长都有切片访问行为,且访问的总切片个数达到了上限tt;
26、空间聚合行为判别模块:针对用户u对层级l在时间窗口t内的瓦片访问记录进行空间聚合,根据访问切片的空间相邻性,利用dbscan方法进行空间连片聚合,找出聚合瓦片个数最大的簇,判断最大簇包含的切片数量是否达到了上限ts,并判断最大簇包含的切片集合所代表的椭球面积总和是否超过了上线s;
27、警告模块:暂停提供正确瓦片而是输出警告瓦片,按照正常瓦片图像大小构造空白图像,直接在图像文件中写入文字警告内容;
28、伪装瓦片生成模块:向客户端伪装可以继续提供地理信息可用瓦片,让爬虫程序以为还在获取正常瓦片;以警告瓦片为基础,在瓦片图像中数据加入随机噪点,形成伪装瓦片。
29、再一方面,本发明还公开了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,处理器执行计算机程序时实现如上所述的方法。
30、有益效果:本发明综合利用时间空间聚合、用户行为检测、访问行为限制、噪声干扰爬取等技术,可以发现用户对地理信息瓦片进行高频密集访问、空间连片访问的异常行为,由于能够及时准确地发现爬虫,并对爬虫程序使用者采取了暂停提供正确瓦片、生成警告瓦片信息、加入噪点干扰客户端提取可用瓦片等措施,保障了地理信息数据提供者的权利利益,有益的效果详述如下:
31、(1)能够发现爬虫、发现爬虫代价不大,发现爬虫行为后可以应对和限制。
32、与常规地理信息服务基础软件相比,本发明具有发现用户爬取地理信息瓦片行为的检测功能,能够发现爬虫。与“水印”事后追溯方式和要求到客户端现场取证相比,本发明中的瓦片请求响应程序是数据提供方在服务器端自主可控的,因此发现爬虫代价不大、成本较低。发现爬虫行为后,数据提供方在服务器端可以立即进行限制爬虫程序,例如暂停响应输出正确瓦片而改为输出警告瓦片。
33、(2)能及时发现爬虫。
34、本发明中发现爬虫的时间消耗与设定的时间窗口t有关,即发现爬虫的时间消耗时间≤2t,例如通常t设定为2分钟,则发现爬虫最长需要4分钟。在4分钟内发现爬取行为的发现速度是迅速的、及时的。与百度地图、天地图等限制每日瓦片请求次数的方式相比,爬虫程序检测的时间周期大幅缩短。
35、(3)精准限制爬虫,而不是限制大访问量的用户。
36、部分活跃用户可能存在每日较大访问需求的瓦片请求量,如果采用百度地图、天地图等限制每日瓦片请求次数,大访问量用户则可能因请求次数而被限制,而单纯改大每日请求次数的限额,又趋同于没有对爬虫进行检测的情况。本发明面向爬虫程序,聚焦于爬虫在地理信息瓦片上的时间聚合和空间聚合行为特征,专门针对爬虫程序检测和限制,而不是限制大访问量的客户端。
37、(4)已被爬取的数据范围相对较小,在客户端能够不能轻易实现非预期利用。
38、假设爬虫客户端在连续2个时间窗口(2t)爬取了少量可用瓦片,服务端仍然可以通过噪点伪装瓦片干扰对客户端对已爬取瓦片的提取利用。服务端以警告瓦片为基础,在瓦片图像中数据加入随机噪点,当爬虫程序的使用者发现了有意加入的警告信息,并试图从瓦片集合中提取有用瓦片时,会发现有用的瓦片(不含噪点的瓦片)和有噪点的瓦片混合在一起,难以通过提取图像特征而进行分类,因此即使爬取者获得的瓦片集合包含部分有用的瓦片,也难以通过程序自动化实现提取。
本文地址:https://www.jishuxx.com/zhuanli/20241125/336041.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表