本发明涉及网络爬虫技术领域,具体涉及一种基于PHP自定义规则进行数据采集的方法及其系统。
背景技术:
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本;另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
传统的数据采集方法通常需要安装第三方客户端,采集过程复杂,采集方法使用困难;采集图片时不能采集其tag,即使采集了,也易造成程序处理入库不方便的问题。
技术实现要素:
基于此,针对上述问题,有必要提出一种降低了采集规则难度与学习使用成本,能够在数分钟内完成一个特定网站类型的数据采集的基于PHP自定义规则进行数据采集的方法及其系统。
本发明提供一种基于PHP自定义规则进行数据采集的方法,其技术方案如下:
一种基于PHP自定义规则进行数据采集的方法,包括以下步骤:
a、基于guzzle组件,生成采集客户端;
b、获取目标网站,读取其文本内容;
c、进行文件切片,完成数据提取。
在本技术方案中,采用php开发语言并使用guzzle组件作为采集客户端(可以方便随机模拟多种采集平台),读取到文本内容后,使用文本定位切片方法进行文件切片;可作为通用采集数据工具,降低了采集规则难度与学习使用成本,能够在数分钟内完成一个特定网站类型的数据采集。
优选的,所述步骤a包括以下步骤:
根据需求,将生成的采集客户端模拟成相应的采集平台。采集客户端在使用时,可根据需求模拟多种采集平台;克服了传统数据采集还必需要安装第三方客户端等问题,增强了数据采集的适应性,提高了采集效率。
优选的,所述步骤c包括以下步骤:
读取文本内容后,分析其元素,并定位切片标签;
根据定位切片标签所处的开始标签和结束标签,定义相应的规则。
选定目标网站,根据HTML源代码分析其元素,定位切片标签,列入开始标签
、结束标签,则规则为“|”;方便定位到所需要的数据所在的标签位置,进而采集到需要的数据。优选的,所述步骤c还包括以下步骤:
获取从大到小依次切片后的标签,并定位到循环标签;
基于TAG标签进行数组切片。
从大到小依次切片,最终定位到循环标签;然后使用TAG:#L__
- 进行数组切片。
优选的,所述步骤c还包括以下步骤:
将循环标签转换为数组,提取所需的字段;
根据字段得到所需的URL,并进行URL修复。
把循环标签转为数组,提取需要的字段,最后得到需要的URL并进行URL修复,完成数据提取;提高采集效率的同时,还提高了数据采集的准确性。
本发明还提供一种基于PHP自定义规则进行数据采集的系统,其技术方案如下:
一种基于PHP自定义规则进行数据采集的系统,包括采集生成模块、文本读取模块和数据提取模块,其中:
采集生成模块,基于guzzle组件,生成采集客户端;
文本读取模块,用于获取目标网站,读取其文本内容;
数据提取模块,用于进行文件切片,完成数据提取。
优选的,所述采集生成模块包括平台模拟子模块,用于根据需求,将生成的采集客户端模拟成相应的采集平台。
优选的,所述数据提取模块包括定位切片子模块和规则定义子模块,其中:
定位切片子模块,用于在读取文本内容后,分析其元素,并定位切片标签;
规则定义子模块,用于根据定位切片标签所处的开始标签和结束标签,定义相应的规则。
优选的,所述数据提取模块还包括循环定位子模块和数组切片子模块,其中:
循环定位子模块,用于获取从大到小依次切片后的标签,并定位到循环标签;
数组切片子模块,基于TAG标签进行数组切片。
优选的,所述数据提取模块还包括字段提取子模块和提取修复子模块,其中:
字段提取子模块,用于将循环标签转换为数组,提取所需的字段;
提取修复子模块,用于根据字段得到所需的URL,并进行URL修复。
本发明的有益效果是:
本发明采用php开发语言并使用guzzle组件作为采集客户端,读取到文本内容后,使用文本定位切片方法进行文件切片;降低了采集规则难度与学习使用成本,提高了采集的效率,能够数分钟内完成一个特定网站类型的数据采集。
附图说明
图1是本发明实施例所述基于PHP自定义规则进行数据采集的方法的流程图;
图2是本发明实施例所述基于PHP自定义规则进行数据采集的系统的原理框图。
附图标记说明:
10-采集生成模块;101-平台模拟子模块;20-文本读取模块;30-数据提取模块;301-定位切片子模块;302-规则定义子模块;303-循环定位子模块;304-数组切片子模块;305-字段提取子模块;306-提取修复子模块。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例1
如图1所示,一种基于PHP自定义规则进行数据采集的方法,包括以下步骤:
a、基于guzzle组件,生成采集客户端;
b、获取目标网站,读取其文本内容;
c、进行文件切片,完成数据提取。
在本实施例中,采用php开发语言并使用guzzle组件作为采集客户端(可以方便随机模拟多种采集平台),读取到文本内容后,使用文本定位切片方法进行文件切片;可作为通用采集数据工具,降低了采集规则难度与学习使用成本,能够在数分钟内完成一个特定网站类型的数据采集。
实施例2
本实施例在实施例1的基础上,所述步骤a包括以下步骤:
根据需求,将生成的采集客户端模拟成相应的采集平台。采集客户端在使用时,可根据需求模拟多种采集平台;克服了传统数据采集还必需要安装第三方客户端等问题,增强了数据采集的适应性,提高了采集效率。
实施例3
本实施例在实施例1的基础上,所述步骤c包括以下步骤:
读取文本内容后,分析其元素,并定位切片标签;
根据定位切片标签所处的开始标签和结束标签,定义相应的规则。
选定目标网站,根据HTML源代码分析其元素,定位切片标签,列入开始标签
、结束标签,则规则为“|”;方便定位到所需要的数据所在的标签位置,进而采集到需要的数据。实施例4
本实施例在实施例3的基础上,所述步骤c还包括以下步骤:
获取从大到小依次切片后的标签,并定位到循环标签;
基于TAG标签进行数组切片。
从大到小依次切片,最终定位到循环标签;然后使用TAG:#L__
- 进行数组切片。
实施例5
本实施例在实施例4的基础上,所述步骤c还包括以下步骤:
将循环标签转换为数组,提取所需的字段;
根据字段得到所需的URL,并进行URL修复。
把循环标签转为数组,提取需要的字段,最后得到需要的URL并进行URL修复,完成数据提取;提高采集效率的同时,还提高了数据采集的准确性。
实施例6
本实施例为实施例1的系统,如图2所示,一种基于PHP自定义规则进行数据采集的系统,包括采集生成模块10、文本读取模块20和数据提取模块30,其中:
采集生成模块10,基于guzzle组件,生成采集客户端;
文本读取模块20,用于获取目标网站,读取其文本内容;
数据提取模块30,用于进行文件切片,完成数据提取。
实施例7
本实施例为实施例2的系统,所述采集生成模块10包括平台模拟子模块101,用于根据需求,将生成的采集客户端模拟成相应的采集平台。
实施例8
本实施例为实施例3的系统,所述数据提取模块30包括定位切片子模块301和规则定义子模块302,其中:
定位切片子模块301,用于在读取文本内容后,分析其元素,并定位切片标签;
规则定义子模块302,用于根据定位切片标签所处的开始标签和结束标签,定义相应的规则。
实施例9
本实施例为实施例4的系统,所述数据提取模块30还包括循环定位子模块303和数组切片子模块304,其中:
循环定位子模块303,用于获取从大到小依次切片后的标签,并定位到循环标签;
数组切片子模块304,基于TAG标签进行数组切片。
实施例10
本实施例为实施例5的系统,所述数据提取模块30还包括字段提取子模块305和提取修复子模块306,其中:
字段提取子模块305,用于将循环标签转换为数组,提取所需的字段;
提取修复子模块306,用于根据字段得到所需的URL,并进行URL修复。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。