CN109800343B - 一种基于php自定义规则进行数据采集的方法及其系统 - Google Patents
一种基于php自定义规则进行数据采集的方法及其系统 Download PDFInfo
- Publication number
- CN109800343B CN109800343B CN201811519454.4A CN201811519454A CN109800343B CN 109800343 B CN109800343 B CN 109800343B CN 201811519454 A CN201811519454 A CN 201811519454A CN 109800343 B CN109800343 B CN 109800343B
- Authority
- CN
- China
- Prior art keywords
- acquisition
- slicing
- positioning
- module
- submodule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于PHP自定义规则进行数据采集的方法,基于guzzle组件,生成采集客户端;获取目标网站,读取其文本内容;进行文件切片,完成数据提取。本发明还公开了一种基于PHP自定义规则进行数据采集的系统,包括采集生成模块、文本读取模块和数据提取模块。本发明采用php开发语言并使用guzzle组件作为采集客户端,读取到文本内容后,使用文本定位切片方法进行文件切片;降低了采集规则难度与学习使用成本,提高了采集的效率,能够数分钟内完成一个特定网站类型的数据采集。
Description
技术领域
本发明涉及网络爬虫技术领域,具体涉及一种基于PHP自定义规则进行数据采集的方法及其系统。
背景技术
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本;另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
传统的数据采集方法通常需要安装第三方客户端,采集过程复杂,采集方法使用困难;采集图片时不能采集其tag,即使采集了,也易造成程序处理入库不方便的问题。
发明内容
基于此,针对上述问题,有必要提出一种降低了采集规则难度与学习使用成本,能够在数分钟内完成一个特定网站类型的数据采集的基于PHP自定义规则进行数据采集的方法及其系统。
本发明提供一种基于PHP自定义规则进行数据采集的方法,其技术方案如下:
一种基于PHP自定义规则进行数据采集的方法,包括以下步骤:
a、基于guzzle组件,生成采集客户端;
b、获取目标网站,读取其文本内容;
c、进行文件切片,完成数据提取。
在本技术方案中,采用php开发语言并使用guzzle组件作为采集客户端(可以方便随机模拟多种采集平台),读取到文本内容后,使用文本定位切片方法进行文件切片;可作为通用采集数据工具,降低了采集规则难度与学习使用成本,能够在数分钟内完成一个特定网站类型的数据采集。
优选的,所述步骤a包括以下步骤:
根据需求,将生成的采集客户端模拟成相应的采集平台。采集客户端在使用时,可根据需求模拟多种采集平台;克服了传统数据采集还必需要安装第三方客户端等问题,增强了数据采集的适应性,提高了采集效率。
优选的,所述步骤c包括以下步骤:
读取文本内容后,分析其元素,并定位切片标签;
根据定位切片标签所处的开始标签和结束标签,定义相应的规则。
选定目标网站,根据HTML源代码分析其元素,定位切片标签,列入开始标签<body>、结束标签</body>,则规则为“<body>|</body>”;方便定位到所需要的数据所在的标签位置,进而采集到需要的数据。
优选的,所述步骤c还包括以下步骤:
获取从大到小依次切片后的标签,并定位到循环标签;
基于TAG标签进行数组切片。
从大到小依次切片,最终定位到循环标签;然后使用TAG:#L__<ul>进行数组切片。
优选的,所述步骤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源代码分析其元素,定位切片标签,列入开始标签<body>、结束标签</body>,则规则为“<body>|</body>”;方便定位到所需要的数据所在的标签位置,进而采集到需要的数据。
实施例4
本实施例在实施例3的基础上,所述步骤c还包括以下步骤:
获取从大到小依次切片后的标签,并定位到循环标签;
基于TAG标签进行数组切片。
从大到小依次切片,最终定位到循环标签;然后使用TAG:#L__<ul>进行数组切片。
实施例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修复。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (4)
1.一种基于PHP自定义规则进行数据采集的方法,其特征在于,包括以下步骤:
a、基于guzzle组件,生成采集客户端;
b、获取目标网站,读取其文本内容;
c、进行文件切片,完成数据提取;
其中,所述步骤c包括以下步骤:
读取文本内容后,分析其元素,并定位切片标签;
根据定位切片标签所处的开始标签和结束标签,定义相应的规则;
所述步骤c还包括以下步骤:
获取从大到小依次切片后的标签,并定位到循环标签;
基于TAG标签进行数组切片;
所述步骤c还包括以下步骤:
将循环标签转换为数组,提取所需的字段;
根据字段得到所需的URL,并进行URL修复。
2.根据权利要求1所述的基于PHP自定义规则进行数据采集的方法,其特征在于,所述步骤a包括以下步骤:
根据需求,将生成的采集客户端模拟成相应的采集平台。
3.一种基于PHP自定义规则进行数据采集的系统,其特征在于,包括采集生成模块、文本读取模块和数据提取模块,其中:
采集生成模块,基于guzzle组件,生成采集客户端;
文本读取模块,用于获取目标网站,读取其文本内容;
数据提取模块,用于进行文件切片,完成数据提取;
所述数据提取模块包括定位切片子模块和规则定义子模块,其中:
定位切片子模块,用于在读取文本内容后,分析其元素,并定位切片标签;
规则定义子模块,用于根据定位切片标签所处的开始标签和结束标签,定义相应的规则;
所述数据提取模块还包括循环定位子模块和数组切片子模块,其中:
循环定位子模块,用于获取从大到小依次切片后的标签,并定位到循环标签;
数组切片子模块,基于TAG标签进行数组切片;
所述数据提取模块还包括字段提取子模块和提取修复子模块,其中:
字段提取子模块,用于将循环标签转换为数组,提取所需的字段;
提取修复子模块,用于根据字段得到所需的URL,并进行URL修复。
4.根据权利要求3所述的基于PHP自定义规则进行数据采集的系统,其特征在于,所述采集生成模块包括平台模拟子模块,用于根据需求,将生成的采集客户端模拟成相应的采集平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811519454.4A CN109800343B (zh) | 2018-12-12 | 2018-12-12 | 一种基于php自定义规则进行数据采集的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811519454.4A CN109800343B (zh) | 2018-12-12 | 2018-12-12 | 一种基于php自定义规则进行数据采集的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109800343A CN109800343A (zh) | 2019-05-24 |
CN109800343B true CN109800343B (zh) | 2022-11-22 |
Family
ID=66556676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811519454.4A Active CN109800343B (zh) | 2018-12-12 | 2018-12-12 | 一种基于php自定义规则进行数据采集的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800343B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826553B1 (en) * | 1998-12-18 | 2004-11-30 | Knowmadic, Inc. | System for providing database functions for multiple internet sources |
CN103279567A (zh) * | 2013-06-18 | 2013-09-04 | 重庆邮电大学 | 一种基于AJAX的Web数据采集方法及系统 |
CN105718584A (zh) * | 2016-01-26 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 网页正文提取的方法及装置 |
CN108235151A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 一种视频直播的方法和装置 |
-
2018
- 2018-12-12 CN CN201811519454.4A patent/CN109800343B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826553B1 (en) * | 1998-12-18 | 2004-11-30 | Knowmadic, Inc. | System for providing database functions for multiple internet sources |
CN103279567A (zh) * | 2013-06-18 | 2013-09-04 | 重庆邮电大学 | 一种基于AJAX的Web数据采集方法及系统 |
CN105718584A (zh) * | 2016-01-26 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 网页正文提取的方法及装置 |
CN108235151A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 一种视频直播的方法和装置 |
Non-Patent Citations (1)
Title |
---|
自定规则的AJAX网页信息采集功能的设计;胡越等;《物联网技术》;20160920(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109800343A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423391B (zh) | 网页结构化数据的信息提取方法 | |
CN102135976B (zh) | 超文本标识语言页面结构化数据提取方法及装置 | |
CN110502538B (zh) | 画像标签生成逻辑映射的方法、系统、设备及存储介质 | |
CN103678509A (zh) | 生成网页模板的方法及装置 | |
US20140156799A1 (en) | Method and System for Extracting Post Contents From Forum Web Page | |
CN110688315A (zh) | 接口代码检测报告生成方法、电子装置及存储介质 | |
CN113283231B (zh) | 获取签章位的方法、设置系统、签章系统及存储介质 | |
CN111008706A (zh) | 一种自动标注、训练、预测海量数据的处理方法 | |
CN108446230B (zh) | 一种面向WebDriver的Java测试代码质量评判方法 | |
CN113064811B (zh) | 基于工作流的自动化测试方法、装置以及电子设备 | |
CN111325012B (zh) | word报表生成方法与系统 | |
CN109800343B (zh) | 一种基于php自定义规则进行数据采集的方法及其系统 | |
CN105653669A (zh) | 超文本标记语言生成方法及装置 | |
CN117372346A (zh) | 一种小样本缺陷识别方法、系统、设备及存储介质 | |
CN110750637B (zh) | 文本摘要提取方法、装置、计算机设备及存储介质 | |
CN109508204B (zh) | 一种前端代码质量检测方法及装置 | |
CN106293862B (zh) | 一种可扩展标记语言xml数据的解析方法和装置 | |
CN116204421A (zh) | 测试用例生成方法、装置、存储介质和计算机设备 | |
CN110110050B (zh) | 一种新闻事件生成式问答数据集的生成方法 | |
CN109710808A (zh) | 一种xml文件的解析方法、系统、装置及可读存储介质 | |
CN112925874B (zh) | 基于案例标记的相似代码搜索方法及系统 | |
CN113312485B (zh) | 日志自动化分类方法及装置、计算机可读存储介质 | |
CN111667214B (zh) | 基于二维码的货物信息获取方法、装置及电子设备 | |
CN112667874A (zh) | 网页的数据抽取方法、装置、电子设备及存储介质 | |
CN111401005B (zh) | 文本转换方法、装置及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |