发明内容
针对上述问题,本发明的主要目的在于提供一种用于半封闭数据环境下的数据搜索的方法和装置,以解决现有技术存在的搜索引擎不能搜索半封闭数据环境中的有用数据的问题。
为了解决上述技术问题,本发明的目的是通过以下技术方案实现的:
本发明提供了一种用于半封闭数据环境下的数据搜索方法,包括以下步骤:构建一个客户端浏览器,通过该浏览器,使用预设登录信息登录访问所述半封闭数据环境的网络访问地址;所述客户端浏览器在登录成功后对所述半封闭数据环境中的预设网页地址进行访问,并获取从所述半封闭数据环境的服务器返回的对应网页的数据文件;根据预设的与所述网页相对应的数据位置信息,从所述数据文件中将相应位置的数据提取出来。
其中,所述根据预设的与所述网页相对应的数据位置信息,从所述数据文件中将相应位置的数据提取出来的步骤,包括:对通过所述客户端浏览器访问获得的网页数据文件进行分析,根据预设的与在所述网页中要获取的数据相对应的文件标签信息,在所述数据文件中定位相匹配的标签的位置;根据所述标签位置,从所述数据文件中将与该标签位置相对应的数据提取出来。
其中,所述将与该标签位置相对应的数据提取出来的步骤,包括:运行与该标签位置相对应的脚本数据,并将运行结果数据提取出来。
其中,本发明所述方法进一步包括:构建一数据库,记录所述半封闭数据环境的网络访问地址、可登录该数据环境的预设登录信息、在该数据环境中需要访问的网页地址,以及与在所述网页中要获取的数据相对应的文件标签信息。
其中,所述客户端浏览器在登录成功后,进一步包括:获取由所述半封闭数据环境的服务器分配的会话令牌,并携带该会话令牌对所述半封闭数据环境中的预设网页地址进行访问。
本发明还提供了一种用于半封闭数据环境下的数据搜索装置,包括:
登录模块,用于构建一个客户端浏览器,通过该浏览器,使用预设登录信息登录访问所述半封闭数据环境的服务器;
访问模块,用于所述客户端浏览器在登录成功后对所述半封闭数据环境中的预设网页地址进行访问,并获取从所述服务器返回的对应网页的数据文件;
提取模块,用于根据预设的与所述网页相对应的数据位置信息,从所述数据文件中将相应位置的数据提取出来。
其中,所述提取模块包括:定位单元对通过所述客户端浏览器访问获得的网页数据文件进行分析,根据预设的与在所述网页中要获取的数据相对应的文件标签信息,在所述数据文件中定位相匹配的标签的位置;提取单元根据所述标签位置,从所述数据文件中将与该标签位置相对应的数据提取出来。
其中,所述提取单元,用于运行与该标签位置相对应的脚本数据,并将运行结果数据提取出来。
其中,所述装置进一步包括一数据库,用于记录所述半封闭数据环境的网络访问地址、可登录该数据环境的预设登录信息、在该数据环境中需要访问的网页地址,以及与在所述网页中要获取的数据相对应的文件标签信息。
其中,所述访问模块,用于获取由所述半封闭数据环境的服务器分配的会话令牌,并携带该会话令牌对所述半封闭数据环境中的预设网页地址进行访问。
应用本发明的实施例,可以无需建立特殊接口即可实现对半封闭数据环境的自动搜索,将其中所需要的数据准确的提取出来,从而提高了数据搜索效率、扩大了数据搜索范围,同时也提高了数据搜索结果的准确性。
具体实施方式
本发明的主要思想在于,构建一个客户端浏览器,通过该浏览器,使用预设登录信息登录访问所述半封闭数据环境的网络访问地址;所述客户端浏览器在登录成功后对所述半封闭数据环境中的预设网页地址进行访问,并获取从所述半封闭数据环境的服务器返回的对应网页的数据文件;根据预设的与所述网页相对应的数据位置信息,从所述数据文件中将相应位置的数据提取出来。
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。
根据本发明的实施例,提供了一种用于半封闭数据环境下的数据搜索方法。
参考图1,图1是本发明实施例的用于半封闭数据环境下的数据搜索方法的流程图。
在步骤S102处,构建一个客户端浏览器,通过该浏览器,使用预设登录信息登录访问所述半封闭数据环境的网络访问地址。
本发明的实施例实现数据搜索的方式与现有的爬虫技术完全不同。现有的爬虫技术并不采用浏览器访问方式,而是采用命令请求方式与网站服务器交互,这对于开放数据环境下的数据搜索是可以的,但对于半封闭式的数据环境,尤其是安全性要求较高的数据环境的访问,由于有些属性参数在命令请求这种访问方式中是不可见的,因此,如果仍然采用命令请求方式就无法进行访问。
本发明实施例通过构建一个客户端浏览器,采用浏览器访问方式,则可以获取现有爬虫技术所无法获得的属性参数,例如会话令牌(Session ID)参数等。用户可以通过该客户端浏览器对半封闭数据环境进行浏览,但如果不具有该半封闭数据环境的服务器的访问权限,就会造成无法登录的情况,因此,可以预先收集设定针对该半封闭数据环境的登录信息,以获得访问权限。
例如,针对微博、论坛等半封闭数据环境,可以通过预先注册用户名和密码的方式预先获得登录信息;针对社交网站等半封闭数据环境,可以通过预先注册姓名和密码的方式获得登录信息;针对网银等半封闭数据环境,可以通过预先注册银行卡号和密码的方式获得登录信息。
实际上,在预先获得登录信息后,还可以进一步对该相应的半封闭数据环境进行分析,获知在该数据环境中需要访问的网页地址,以及与在所述网页中要获取的数据相对应的文件标签等信息。由此,可以通过构建一数据库,来记录所述半封闭数据环境的网络访问地址、可登录该数据环境的预设登录信息、在该数据环境中需要访问的网页地址,以及与在所述网页中要获取的数据相对应的文件标签信息。当然,除了预先分析获知外,在登录半封闭数据环境后,通过对其各个页面进行自动访问和分析也可以获知相应的网页地址以及文件标签等信息。但从搜索效率和准确性角度来说,显然根据预设信息执行访问的效果更好。
在步骤S104处,所述客户端浏览器在登录成功后对所述半封闭数据环境中的预设网页地址进行访问,并获取从所述半封闭数据环境的服务器返回的对应网页的数据文件。
所述半封闭数据环境存在与其对应的网络访问地址,基于该网络访问地址,客户端浏览器利用预设的登录信息登录半封闭数据环境的服务器后,就可以对其各个页面进行访问。
为了提高访问效率和准确性,本发明实施例利用预先设置的网页地址来执行访问。例如在登录某个社交网站后,可以直接控制浏览器访问存在感兴趣数据的页面;再例如登录某个网银后,可以直接控制浏览器访问存在产品介绍的页面。
具体而言,该预先设置的网页地址可以包括单一的网页地址和/或网页地址流。
进一步地,客户端浏览器对预设的单一网页地址进行访问,即访问一个预设的网页地址;而客户端浏览器对预设的网页地址流进行访问(所述网页地址流包含有序的多个网页地址),即基于该网页地址流中包含的有序的多个网页地址的顺序,依次执行该多个网页地址中的每一个网页地址,用以获取从所述半封闭数据环境的服务器返回的对应网页的数据文件,其中,该数据文件与位于所述有序的多个网页地址中的最后一个网页地址行相对应。
对于一些对安全性要求较高的数据环境,往往会要求访问方携带会话令牌才可以执行访问,因此,根据本发明的实施例,可以在登录成功后,进一步获取由所述半封闭数据环境的服务器分配的会话令牌,并携带该会话令牌对所述半封闭数据环境中的预设网页地址进行访问。
在步骤S106处,根据预设的与所述网页相对应的数据位置信息,从所述数据文件中将相应位置的数据提取出来。
对通过所述客户端浏览器访问获得的网页数据文件进行分析,根据预设的与在所述网页中要获取的数据相对应的文件标签信息,在所述数据文件中定位相匹配的标签的位置。
尽管可以通过对获得的数据文件进行自动分析获取与感兴趣的数据相对应的文件标签信息,但出于效率和准确性考虑,根据本发明实施例,可以事先在数据库中存储针对特定网页地址的特定的文件标签信息,该标签代表了特定的数据在网页数据文件中的位置。
例如,可以在数据库中存储:1、要访问的网络访问地址:www.facebook.com;2、相应的预设登录信息:账号:mike;密码:123;3、存在感兴趣数据的需要访问的网页地址:1.facebook.com;4、在该网页的数据文件中感兴趣的数据对应的标签信息为第2个<a>标签。
当本发明实施例运作时,可以首先从数据库获取要访问的网络访问地址,然后根据相应的登录信息执行登录,登录成功后可控制浏览器直接访问预设的网页地址,从获得的网页数据文件中根据预设的文件标签信息定位相匹配的标签位置。
根据所述标签位置,将与该标签位置相对应的数据提取出来。
所述定位相匹配的标签的位置,目的在于将与该标签位置相对应的数据提取出来展示给用户,所以,当在所述数据文件中定位相匹配的标签的位置后,便可以提取与该标签位置相对应的数据。
在提取数据时,数据文件中的某些数据可以直接提取出来并展示给用户,例如,文字内容。
但是,在数据文件中还可能包括脚本数据(如,JS代码),由于脚本数据是可执行文件,所以不能直接提取数据,在这种情况下,可以通过其他方式达到提取数据的目的,例如先运行与该标签位置相对应的脚本数据以获得该脚本数据的运行结果,并将运行结果数据提取出来。
本发明还提供了一种用于半封闭数据环境下的数据搜索装置,图2所示为本发明实施例的用于半封闭数据环境下的数据搜索装置的模块图。
根据本发明的装置,可以包括登录模块210、访问模块230、提取模块250。
登录模块210,用于构建一个客户端浏览器,通过该浏览器,使用预设登录信息登录访问所述半封闭数据环境的网络访问地址。
预先构建一个数据库,用于记录所述半封闭数据环境的网络访问地址、可登录该数据环境的预设登录信息、在该数据环境中需要访问的网页地址,以及与在所述网页中要获取的数据相对应的文件标签信息。
利用预设的登录信息,登录模块210可以获得该半封闭数据环境的访问权限。
访问模块230,用于所述客户端浏览器在登录成功后对所述半封闭数据环境中的预设网页地址进行访问,并获取从所述半封闭数据环境的服务器返回的对应网页的数据文件。
对于要求访问方携带会话令牌才可以进行访问的半封闭数据环境,当登录模块210成功登录该半封闭数据环境的服务器后,该服务器会发放会话令牌,访问模块230获取由所述半封闭数据环境的服务器分配的会话令牌,并携带该会话令牌对该半封闭数据环境中的预设网页地址进行访问。
提取模块250,用于根据预设的与所述网页相对应的数据位置信息,从所述数据文件中将相应位置的数据提取出来。
在该提取模块250中还包括定位单元(未示出)和提取单元(未示出)。
其中,定位单元用于对通过所述客户端浏览器访问获得的网页数据文件进行分析,根据预设的与在所述网页中要获取的数据相对应的文件标签信息,在所述数据文件中定位相匹配的标签的位置。
提取单元用于根据所述标签位置,将与该标签位置相对应的数据提取出来。
若在数据文件中包含脚本数据,则所述提取模块250中的提取单元运行与该标签位置相对应的脚本数据,并将运行结果数据提取出来。
本发明通过预设并记录半封闭数据环境中的有用数据的方式,在半封闭数据环境中,定位并提取数据,最终将该数据展现给用户,从而提高了数据搜索效率、扩大了数据搜索范围,同时也提高了数据搜索结果的准确性。
由于图2所描述的本发明的装置所包括的各个模块的具体实施方式与本发明的方法中的步骤的具体实施方式是相对应的,由于已经对图1进行了详细的描述,所以为了不模糊本申请,在此不再对各个模块的具体细节进行描述。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。