一种网络学习资源聚合查询的方法和系统技术方案

技术编号:15792126 阅读:99 留言:0更新日期:2017-07-09 23:26
本发明专利技术提供了一种网络学习资源聚合查询的方法和系统,目的是克服需要目标网站提供技术支持,以及需要将采集的数据进行结构化处理的缺点,且不引起版权纠纷,满足个性化搜索的需要。技术方案是采用CURL多线程函数同时向若干个目标网站发送查询请求和查询关键字,使用正则表达式提取所述目标网站返回代码中的搜索结果列表区域,再对所述返回代码中的URL进行修正,最后将这些所述返回代码载入到本系统的搜索结果页中。本发明专利技术的优点在于:不需要将从目标网站获取的非结构化数据转换为结构化数据;不需要在本系统的服务器端存储从目标网站获取得到的数据,从而不会产生版权纠纷;不需要目标网站提供任何技术支持,满足个性化搜索需要,简单实用。

【技术实现步骤摘要】
一种网络学习资源聚合查询的方法和系统
本专利技术涉及计算机网络
,具体涉及一种网络学习资源聚合查询的方法和系统。
技术介绍
目前,Internet上的各种学习资源(如课件、教学视频、学习文档等)已经非常丰富,很多学习者都喜欢搜索网络学习资源进行自学,很多教师也喜欢搜索课件等学习资源进行备课。人们最常用的方法是使用通用搜索引擎(如百度)搜索这些学习资源。但是,使用通用搜索引擎搜索学习资源一般只能搜索到一些零散的资源,而近年来我国的各大出版社都注重加强教材书籍的配套资源建设,许多出版社网站上已经积累了丰富的教材配套教学资源。这类教学资源一般由书籍作者提供,比较系统。另一方面,我国的很多慕课网站、精品课网站也积聚了大量的课程资源,但这些网站上海量的教学资源在百度等搜索引擎上却几乎搜索不到,因为搜索引擎的搜索爬虫无法将用户任意输入的关键词传递到目标网站的表单中获得搜索结果列表。如果用户分别去访问每家出版社或课程网站,再逐个输入关键词搜索每个网站上的教学资源,那将是一件非常繁琐的事情。一种解决方案是:让每个搜索目标网站提供结构化数据(如JSON或XML数据)的接口,则可采用Ajax(AsynchronousJavascriptAndXML,异步JavaScript和XML)或CURL(CommandLineUniformResourceLocator,命令行统一资源定位器)技术去获取目标网站的结构化数据,再将其聚合到结果网站中。第二种方案是:利用出版社的搜索接口,进行统一查询,将查询得到的数据进行结构化处理之后存储到本地数据库中,再对本地数据库进行查询,这种方式的查询速度较快,但由于复制了出版社网站的内容到本地存储中,会引发版权纠纷问题。总之,目前的网络学习资源聚合查询方案,至少存在下列一点或几点不足:①需要目标网站提供结构化的数据和访问接口;②需要将从目标网站中采集的内容结构化处理后存储到本地数据库中,由于复制了目标网站的内容到本地,将可能导致版权纠纷问题;③复制内容到本地数据库中查询,不能保证查询的是目标网站中的最新内容;④需要目标网站提供数据库结构或其他技术支持。
技术实现思路
为了克服需要目标网站提供技术支持,以及需要将采集的数据进行结构化处理的缺点,且不引起版权纠纷,满足个性化搜索的需要。提出了本专利技术,以便提供一种克服上述问题或者至少部分地解决上述问题的方法。根据本专利技术,提供了一种网络学习资源聚合查询的方法,包括以下步骤:第一步:将所有要查询的目标网站的网址、编码、HTTP请求方式等信息保存在数据库的一个表(设表名为sites,sites表中的字段有id,name,url,charset,pregmatch,valid,postdata,imgsrcp,asrcp,sort,descp)中,如果要新增查询的网站,只需将新网站的信息作为一条记录插入到sites表中。第二步:本系统在网页上提供一个表单供用户输入搜索关键词。第三步:获取所述搜索关键词,根据sites表中charset字段记录的目标网站的编码类型,将关键词进行URL编码,使关键词转换后的字符编码与所述目标网站的字符编码相同。第四步:使用CURL多线程函数将编码后的关键词同时发送到各个目标网站的搜索处理页(sites表中的url字段保存了所述搜索处理页的网址),如果sites表中postdata字段值不为空,则以POST方式将关键词嵌入到postdata字段值中再发送给目标网站,如果postdata字段值为空,则以GET方式发送关键词数据给目标网站。第五步:定义一个数组,接收各个所述目标网站返回的搜索结果页面的HTML代码。第六步:对返回的所有所述HTML代码进行统一编码(如统一转换成utf-8编码)。第七步:提取搜索结果列表区域:首先采用人工方法(如借助chrome浏览器的“检查”功能)找到搜索结果列表区域的起始代码,然后再根据首尾代码人工写出匹配整个区域的正则表达式代码,将其保存在sites表的pregmatch字段中,,最后使用正则表达式匹配函数(如preg_match)提取所述HTML代码中的搜索结果内容部分。第八步:修正所述HTML代码中图像和超链接中的相对URL地址。首先使用DOM(DocumentObjectModel,文档对象模型)操作类(例如simplehtmldom)找到返回所述HTML代码中的所有a元素和img元素,然后在其src属性值前添加原网站的域名和路径前缀字符串(sites表中的asrc字段和imgsrcp字段保存了所述前缀字符串)。第九步:在本系统中载入修正后的搜索结果列表区域代码。分别将每段修正后的代码载入到一个HTML容器元素中。第十步:为搜索结果列表添加样式代码,对所有所述HTML容器元素进行样式布局和美化并输出到本系统的搜索结果页中。进一步地,提供一个后台管理系统,供用户添加、删除、修改所述目标网站的信息,用户可设置valid字段的值是否搜索指定的目标网站,设置sort属性的值来实现对所述目标网站的排序。本专利技术的优点在于:不需要将从目标网站获取的非结构化数据转换为结构化数据;不需要在本系统的服务器端存储从目标网站获取得到的数据,从而不会产生版权纠纷;不需要目标网站提供任何技术支持,满足个性化搜索需要,简单实用。附图说明图1为本专利技术实施的工作原理流程图。图2为依据本专利技术一实施例的网页(该实施例的首页)显示界面的示范性示意图。图3为依据本专利技术一实施例的网页(该实施例的搜索结果页)显示界面示意图。具体实施方式下面结合附图并通过具体实施方式来进一步说明本专利技术的技术方案。本专利技术技术方案的主要思想是采用CURL多线程函数同时向若干个目标网站发送查询请求和查询关键字,使用正则表达式提取所述目标网站返回代码中的搜索结果列表区域,再对所述返回代码中的URL进行修正,最后将这些所述返回代码载入到本系统的搜索结果页中。该实施例包括浏览器端和服务器端,两者之间可通过网络连接,也可将浏览器端和服务器端部署在同一台计算机上,在服务器端安装并配置有Web服务器软件Apache、MySQL和CURL扩展插件。该实施例的工作流程包括以下步骤:步骤101:将所有要查询的目标网站的网址、编码等信息保存在数据库的一个表中,该表的结构如下:sites(id,name,url,charset,pregmatch,valid,postdata,imgsrcp,asrcp,sort,descp)各字段的含义对应如下:sites(序号,网站名,网站搜索入口URL,网站的编码类型,内容区域的正则表达式匹配码,是否有效,存储post数据,图像URL地址前缀,超链接URL地址前缀,排序,描述)如果要新增要查询的网站,只需将新网站的信息添加到sites表中即可。步骤102:如图2所示,该实施例在网页上提供一个搜索表单供用户输入搜索关键词。步骤103:获取表单中的所述关键词,根据sites表中记录的目标网站的编码类型,将关键词进行URL编码,使关键词转换后的编码与目标网站的编码相同。步骤104:使用CURL多线程函数将编码后的关键词同时发送给各个目标网站的搜索处理页。所述搜索处理页的网址为sites表中url字段的值,如果sites表中postdata本文档来自技高网
...
一种网络学习资源聚合查询的方法和系统

【技术保护点】
一种网络学习资源聚合查询的方法和系统,其特征在于包括以下步骤:第一步:将所有要查询的目标网站的网址、编码、HTTP请求方式等信息保存在数据库的一个表(设表名为sites,sites表中的字段有id, name, url, charset, pregmatch, valid, postdata, imgsrcp, asrcp, sort, descp)中,如果要新增查询的网站,只需将新网站的信息作为一条记录插入到sites表中;第二步:本系统在网页上提供一个表单供用户输入搜索关键词;第三步:获取所述搜索关键词,根据sites表中charset字段记录的目标网站的编码类型,将关键词进行URL编码,使关键词转换后的字符编码与所述目标网站的字符编码相同;第四步:使用CURL多线程函数将编码后的关键词同时发送到各个目标网站的搜索处理页(sites表中的url字段保存了所述搜索处理页的网址),如果sites表中postdata字段值不为空,则以POST方式将关键词嵌入到postdata字段值中再发送给目标网站,如果postdata字段值为空,则以GET方式发送关键词数据给目标网站;第五步:定义一个数组,接收各个所述目标网站返回的搜索结果页面的HTML代码;第六步:对返回的所有所述HTML代码进行统一编码;第七步:提取搜索结果列表区域:首先采用人工方法找到搜索结果列表区域的起始代码,然后再根据首尾代码人工写出匹配整个区域的正则表达式代码,将其保存在sites表的pregmatch字段中,最后使用正则表达式匹配函数(如preg_match)提取所述HTML代码中的搜索结果内容部分;第八步:修正所述HTML代码中图像和超链接中的相对URL地址:首先使用DOM(Document Object Model,文档对象模型)操作类(例如simple html dom)找到返回所述HTML代码中的所有a元素和img元素,然后在其src属性值前添加原网站的域名和路径前缀字符串(sites表中的asrc字段和imgsrcp字段保存了所述前缀字符串);第九步:在本系统中载入修正后的搜索结果列表区域代码,分别将每段修正后的代码载入到一个HTML容器元素中;第十步:为搜索结果列表添加样式代码,对所有所述HTML容器元素进行样式布局和美化并输出到本系统的搜索结果页中。...

【技术特征摘要】
1.一种网络学习资源聚合查询的方法和系统,其特征在于包括以下步骤:第一步:将所有要查询的目标网站的网址、编码、HTTP请求方式等信息保存在数据库的一个表(设表名为sites,sites表中的字段有id,name,url,charset,pregmatch,valid,postdata,imgsrcp,asrcp,sort,descp)中,如果要新增查询的网站,只需将新网站的信息作为一条记录插入到sites表中;第二步:本系统在网页上提供一个表单供用户输入搜索关键词;第三步:获取所述搜索关键词,根据sites表中charset字段记录的目标网站的编码类型,将关键词进行URL编码,使关键词转换后的字符编码与所述目标网站的字符编码相同;第四步:使用CURL多线程函数将编码后的关键词同时发送到各个目标网站的搜索处理页(sites表中的url字段保存了所述搜索处理页的网址),如果sites表中postdata字段值不为空,则以POST方式将关键词嵌入到postdata字段值中再发送给目标网站,如果postdata字段值为空,则以GET方式发送关键词数据给目标网站;第五步:定义一个数组,接收各个所述目标网站返回的搜索结果页面的HTML代码;第六步:对返回的所有所述HTML代码进行统一编码;第七步:提取搜索结果列表区域:首先采用人工方法找到搜索结果列表区域的起始代码,然后再根据首尾代码人工写出匹配整个区域的正则表达式代码,将其保存在sites表的pregmatch字段中,最后使用正则表达式匹配函数(如preg_match)提取所述HTML代码中的搜索结果内容部分;第八步:修正所述HTML代码中图像和超...

【专利技术属性】
技术研发人员:唐四薪林睦纲唐琼
申请(专利权)人:衡阳师范学院
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1