票务订单的数据匹配方法、装置及系统
技术领域
本发明涉及一种票务订单的数据匹配方法、装置及系统。
背景技术
用户在使用订票网站预定机票、船票或车票等票务时往往会得到一张包括多种数据的订单,如机票的订单通常会包括订单号、姓名、航班号、座位号等数据。订单内的这些数据往往存储于不同系统或服务器上,订票网站为了输出订单,往往需要手动地从相应的系统或服务器上获取的相应的数据,然后再手动地将获取到的数据录入到需要输出的订单中。这种采用手动获取和手动录入的方式效率不但十分低下,还很容易出现错误。
发明内容
本发明要解决的技术问题是现有技术中通过手动获取和手动录入的方式输出的票务订单导致的效率低且易出错的缺陷,提供一种高效且高准确率的票务订单的数据匹配方法、装置及系统。
本发明是通过下述技术方案解决上述技术问题的:
本发明提供一种票务订单的数据匹配方法,其特点是,包括以下步骤:
S1、从出票服务器中分别抓取一与获取到的订单号对应的票号——序列号数据对和一与该订单号对应的姓名——序列号数据对;
S2、将该票号——序列号数据对和该姓名——序列号数据对基于序列号进行匹配,并生成一数据组,该数据组包括若干组数据,每组数据分别包括订单号及序列号、与序列号对应的票号和与序列号对应的姓名;
S3、采用爬虫技术从订单服务器的网页上抓取一与该订单号对应的订单,该订单包括姓名;
S4、将该数据组与该订单基于姓名进行匹配,并将相匹配的数据添加至该订单。
该数据匹配方法能够自动获取数据,并将获取到的数据自动匹配以生成需要的订单,大大提高了订单生成的效率,节省了人力成本,同时还能保证订单内数据的准确性,避免出现错误。
较佳的,S1包括从PNR(旅客订座记录)中抓取该姓名——序列号数据对的步骤。其中,PNR存储于出票服务器,本步骤能够快速定位姓名——序列号数据对的位置,进一步提高订单生成的效率。
较佳的,该数据匹配方法还包括将抓取到的票号——序列号数据对、姓名——序列号数据对和订单放入一缓存。这样便于工作人员查阅抓取到的数据。
较佳的,S1包括以下步骤:
S11、采用直线生成算法进行程序动作打包,被打包的程序动作包括根据获取到的订单号生成URL(字符串形式)链接、基于生成的URL链接抓取票号——序列号数据对以及基于生成的URL链接抓取姓名——序列号数据对;
S12、访问出票服务器并运行S11打包后的程序动作。
上述步骤有利于提高抓取数据的效率和准确性。
较佳的,S3包括以下步骤:
S31、采用直线生成算法进行程序动作打包,被打包的程序动作包括根据获取到的订单号生成URL链接、基于生成的URL链接抓取订单;
S32、分析订单服务器的网页并运行S31打包后的程序动作。
上述步骤有利于提高抓取数据的效率和准确性。
本发明还提供一种票务订单的数据匹配装置,其特点是,包括一第一抓取模块、一第一匹配模块、一第二抓取模块和一第二匹配模块;
该第一抓取模块用于从出票服务器中分别抓取一与获取到的订单号对应的票号——序列号数据对和一与该订单号对应的姓名——序列号数据对;
该第一匹配模块用于将该票号——序列号数据对和该姓名——序列号数据对基于序列号进行匹配,并生成一数据组,该数据组包括若干组数据,每组数据分别包括订单号及序列号、与序列号对应的票号和与序列号对应的姓名;
该第二抓取模块用于采用爬虫技术从订单服务器的网页上抓取一与该订单号对应的订单,该订单包括姓名;
该第二匹配模块用于将该数据组与该订单基于姓名进行匹配,并将相匹配的数据添加至该订单。
较佳的,该第一抓取模块用于从PNR中抓取该姓名——序列号数据对。
较佳的,该数据匹配装置还包括一缓存模块,该缓存模块用于将抓取到的票号——序列号数据对、姓名——序列号数据对和订单放入一缓存。
较佳的,该第一抓取模块包括一第一打包模块和一第一运行模块;
该第一打包模块用于采用直线生成算法进行程序动作打包,被打包的程序动作包括根据获取到的订单号生成URL链接、基于生成的URL链接抓取票号——序列号数据对以及基于生成的URL链接抓取姓名——序列号数据对;
该第一运行模块用于访问出票服务器并运行该第一打包模块打包后的程序动作。
较佳的,该第二匹配模块包括一第二打包模块和一第二运行模块;
该第二打包模块用于采用直线生成算法进行程序动作打包,被打包的程序动作包括根据获取到的订单号生成URL链接、基于生成的URL链接抓取订单;
该第二运行模块用于分析订单服务器的网页并运行该第二打包模块打包后的程序动作。
本发明还提供一种票务订单的数据匹配系统,其特点是,该数据匹配系统包括上述任意一种的数据匹配装置、上述的出票服务器和上述的订单服务器。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:本发明能够自动抓取订单所需的数据并自动生成需要的订单,大大提高了生成订单的效率和准确性,节省了人力成本,避免出现录入错误。
附图说明
图1为本发明的实施例的票务订单的数据匹配方法的流程图。
图2为本发明的实施例的票务订单的数据匹配方法中抓取票号——序列号数据对和姓名——序列号数据的步骤的流程图。
图3为本发明的实施例的票务订单的数据匹配方法中抓取订单的步骤的流程图。
图4为本发明的实施例的票务订单的数据匹配方法中采用直线生成算法的爬虫技术中两步算法的示意图。
图5为本发明的实施例的票务订单的数据匹配装置的示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例
参见图1,一种票务订单的数据匹配方法包括以下步骤:
步骤101、获取用户输入的一订单号。
步骤102、从出票服务器中抓取与该订单号对应的票号——序列号数据对,以及从出票服务器的PNR中抓取与该订单号对应的姓名——序列号数据对,并将抓取到的票号——序列号数据对和姓名——序列号数据对放入一缓存。
步骤103、将该缓存中的票号——序列号数据对和姓名——序列号数据对基于序列号进行匹配,并生成一数据组,该数据组包括若干组数据,每组数据分别包括订单号及序列号、与序列号对应的票号和与序列号对应的姓名。
步骤104、采用爬虫技术从订单服务器的网页上抓取一与该订单号对应的订单,并将该订单放入该缓存。其中该订单包括姓名。
步骤105、将该缓存中的数据组与订单基于姓名进行匹配,并将相匹配的数据添加至该订单。
具体的,参见图2,步骤102包括以下步骤:
步骤1021、采用直线生成算法进行程序动作打包,被打包的程序动作包括根据获取到的订单号生成URL链接、基于生成的URL链接抓取票号——序列号数据对以及基于生成的URL链接抓取姓名——序列号数据对。
步骤1022、访问出票服务器并运行步骤1021打包后的程序动作。
参见图3,步骤104包括以下步骤:
步骤1041、采用直线生成算法进行程序动作打包,被打包的程序动作包括根据获取到的订单号生成URL链接、基于生成的URL链接抓取订单。其中程序动作打包的步骤具体包括:先将网页数据虚拟为二维坐标系中的数据点,然后选定一URL生成点及一数据结束点,再采用直线生成算法在所述URL生成点及所述数据结束点之间虚拟一条直线。
步骤1042、分析订单服务器的网页并运行步骤1041打包后的程序动作。其中抓取的程序动作是基于虚拟出的直线进行的。
步骤102和步骤104的原理基本相同,将直线生成算法运用到了网络爬虫结构中,在数学范畴内的直线是由没有宽度的点组成的集合,但是在计算机图形学的范畴内,所有的图形包括直线都是输出或显示在点阵设备上的,被成为点阵图形或光栅图形。以显示器为例,现实中常见的显示器(包括CRT(阴极射线管)显示器和液晶显示器)都可以看成由各种颜色和灰度值的像素点组成的象素矩阵,这些点是有大小的,而且位置固定,因此只能近似的显示各种图形。计算机图形学中的直线生成算法包含了两层意思,一层是在解析几何空间中根据坐标构造出平面直线,另一层就是在光栅显示器之类的点阵设备上输出一个最逼近于图形的象素直线,而这就是常说的光栅图形扫描转换。本实施例的直线生成算法具体为两步算法,两步算法是在生成直线的过程中,每次判断都生成两个点的直线生成算法,以图4示出的两步算法的示意图为例,首先将网页数据虚拟为相应的坐标点(即图4中的P、A、B、C、D、E),其中默认P点为URL生成点,E点为数据结束点,然后在P点和E点之间虚拟出一条直线,或者在点与点之间虚拟直线,通过线连接点的方式读取网页数据。具体路径依次如下:
1、P-E
2、P-B-E
3、P-D-E……
这种方式不需遍历各个点就能快速读取网页数据,减少运算步骤,增加运算效率,提高了抓取数据的速度,进一步提高了生成订单的效率。
本实施例中出票服务器中包括多个订单号及每个订单号对应的票号——序列号数据对和姓名——序列号数据对,其中每个订单号对应的票号——序列号数据对和姓名——序列号数据对均可以为一个或多个。如一个出票服务器包括表1的内容:
表1
本实施例中订单服务器包括多个订单,每个订单号分别包括订单号和姓名,如表2:
表2
若针对表1中的出票服务器和表2中的订单服务器采用本实施例的票务订单的数据匹配方法,具体过程如下:
假设用户输入的订单号为648754,即步骤101获取到的订单号为648754;通过步骤102从出票服务器中抓取到的票号——序列号数据对分别为12345——234、12346——235和12347——236,抓取到的姓名——序列号数据对分别为张三——234、李四——235和王五——236;通过步骤103将具有相同的序列号的票号——序列号数据对和姓名——序列号数据对合并为一组数据,生成下述数据组:
通过步骤104从订单服务器的网页上抓取到订单1;通过步骤105将与该订单包括的姓名相同的数据填入订单1,最后得到的订单1如表3:
表3
参见图5,本实施例的票务订单的数据匹配装置包括一获取模块201、一第一抓取模块202、一第一匹配模块203、一第二抓取模块204、一第二匹配模块205和一缓存模块206。
该获取模块201用于获取订单号。
该第一抓取模块202用于从出票服务器中分别抓取一与该订单号对应的票号——序列号数据对和一与该订单号对应的姓名——序列号数据对,其中该姓名——序列号数据对是从该出票服务器的PNR中抓取的。
该第一匹配模块203用于将该票号——序列号数据对和该姓名——序列号数据对基于序列号进行匹配,并生成一数据组,该数据组包括若干组数据,每组数据分别包括订单号及序列号、与序列号对应的票号和与序列号对应的姓名。
该第二抓取模块204用于采用爬虫技术从订单服务器的网页上抓取一与该订单号对应的订单,该订单包括姓名。
该第二匹配模块205用于将该数据组与该订单基于姓名进行匹配,并将相匹配的数据添加至该订单。
该缓存模块206用于将抓取到的票号——序列号数据对、姓名——序列号数据对和订单放入一缓存。
具体的,该第一抓取模块202包括一第一打包模块2021和一第一运行模块2022。
该第一打包模块2021用于采用直线生成算法进行程序动作打包,被打包的程序动作包括根据获取到的订单号生成URL链接、基于生成的URL链接抓取票号——序列号数据对以及基于生成的URL链接抓取姓名——序列号数据对。
该第一运行模块2022用于访问出票服务器并运行经该第一打包模块打包后的程序动作。
该第二抓取模块204包括一第二打包模块2041和一第二运行模块2042。
该第二打包模块2041用于采用直线生成算法进行程序动作打包,被打包的程序动作包括根据获取到的订单号生成URL链接、基于生成的URL链接抓取订单。
该第二运行模块2042用于分析订单服务器的网页并运行经该第二打包模块打包后的程序动作。
本实施例的票务订单的数据匹配系统包括该数据匹配装置、缓存、出票服务器和订单服务器。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。