本发明属于网页规则定制技术领域,特别是涉及基于pythonQT及智能算法的快速规则定制方法。

背景技术:

随着大数据技术的快速发展,数据作为其根本研究对象,发挥着越来越举足轻重的作用。数据如何高效快速地获取,成为了目前研究的重要课题之一。而爬虫作为互联网数据获取的基本技术手段,高效获取数据,优化改善势目前的技术势在必行。目前爬虫获取网页数据的基本思路是:

(1)通过给定的目标网页地址,爬虫发起对该页面的请求,即发送一个Request,请求可以包含额外的hearder等信息。

(2)获取请求服务器后响应的内容。如果服务器能够正常响应,会得到一个Response,Response的内容便是所要获取页面的内容。

(3)解析内容。得到网页内容后,爬虫便会分析页面结构,爬取指定内容。

(4)保存数据。保存数据形式不一,可以存为文本,也可以保存到数据库,又或者保存为特定格式的文件。

对步骤(3)中的内容解析,目前常用的技术手段基本是,技术人员通过浏览器人工分析网站的页面结构,给出具体规则,然后后台爬虫根据规则对页面进行数据爬取。如果爬取单一的网站,这种方式是可取的;然而针对大量网站,这种逐一提取页面规则的方式显然是不可取的,耗时耗力。在效率上存在一定的瓶颈。归根揭底就是没有统一的工具来获取待爬取页面的元素规则。

本发明致力于研发一种基于pythonQT及智能算法的快速规则定制方法,用于解决现有的通过人工分析网站定制网页规则不适用多种繁杂的网站页面规则定制且耗时耗力、效率较低的问题。

技术实现要素:

本发明的目的在于提供基于pythonQT及智能算法的快速规则定制方法,通过selenium提取页面中导航列表项并过滤掉不符合的标签;同时通过智能算法提取详情页正文部分,实现了多种不同网站的网页规则的定制,解决了现有的通过人工分析网站定制网页规则不适用多种繁杂的网站页面规则定制且耗时耗力、效率较低的问题。

为解决上述技术问题,本发明是通过以下技术方案实现的:

本发明为基于pythonQT及智能算法的快速规则定制方法,包括如下步骤:

S00:输入待爬取页面的URL,客户端通过URL加载页面;

S01:基于selenium提取页面中导航列表项;

S02:通过智能算法提取详情页正文部分;

S03:通过js技术从页面中获取页面元素规则,返回客户端;

S04:规则上传服务端,后台爬虫程序根据规则进行爬取;

其中,S01中提取页面中导航列表项具体过程如下:

A00:通过selenium标记页面中的可见<a>标签;

A01:对标记过的<a>标签进行过滤;

其中,S02中通过智能算法提取详情页正文部分具体过程如下:

C00:将详情页中的html标签去除得到纯文本;

C01:设定行块大小行数大小M、行块字数阈值并计算各行块的字符数N;

C02:绘制以行数M为横坐标、行块字数N为纵坐标绘制行块曲线;

CO3:获取骤降点与骤升点并确认正文区域。

优选地,A01中过滤方式为:

T00:遍历A00中筛选出的<a>标签,计算出标签的坐标位置并存放于标签横坐标于标签坐标数组中;

T01:过滤掉纵坐标大于浏览器高度的<a>标签;

T02:预设表示页面导航列表个数的基准值;

T03:判断标签坐标数组中横坐标相同的个数是否小于基准值;若是,删除该横坐标对应的<a>标签。

优选地,S03中通过js技术从页面中获取页面元素规则具体过程如下:

POO:客户端开启一个web服务器;

PO1:加载页面URL时,在页面中新增form表单;给点击元素设置点击事件,通过点击元素获取该元素的各属性值,然后通过form表单提交到web服务器;

PO2:web服务器接收form表单发送的数据并展示在客户端;客户端存储规则,同步到服务端。

优选地,所述行数大小M范围为1<M<正文行总数;所述行块字符数N为行块内字符总数。

优选地,所述骤降点判断依据为第一个满足当前点的下一点纵坐标为0;所述骤升点判断依据为第一个满足当前点的下一点纵坐标大于行块字数阈值;所述正文区域为骤升点与骤降点间的字符。

本发明具有以下有益效果:

本发明通过selenium提取页面中导航列表项并过滤掉纵坐标大于浏览器高度的<a>标签以及横坐标相同的个数小于基准值的<a>标签;之后再通过智能算法提取详情页正文部分,避免了通过人工分析网站定制网页规则不适用多种繁杂的网站页面规则定制的问题,适用于与不同网站网页规则定制,提高网页规则定制效率。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明基于pythonQT及智能算法的快速规则定制方法的流程图;

图2为本发明S02中通过智能算法提取详情页正文部分的流程图;

图3为本发明S03中通过js技术从页面中获取页面元素规则的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1所示,本发明为基于pythonQT及智能算法的快速规则定制方法,包括如下步骤:

S00:输入待爬取页面的URL,客户端通过URL加载页面;

S01:基于selenium提取页面中导航列表项;

S02:通过智能算法提取详情页正文部分;

S03:通过js技术从页面中获取页面元素规则,返回客户端;

S04:规则上传服务端,后台爬虫程序根据规则进行爬取;

其中,S01中提取页面中导航列表项具体过程如下:

A00:通过selenium标记页面中的可见<a>标签;

A01:对标记过的<a>标签进行过滤;

请参阅图2所示,S02中通过智能算法提取详情页正文部分具体过程如下:

C00:将详情页中的html标签去除得到纯文本;

C01:设定行块大小行数大小M、行块字数阈值并计算各行块的字符数N;

C02:绘制以行数M为横坐标、行块字数N为纵坐标绘制行块曲线;

CO3:获取骤降点与骤升点并确认正文区域。

其中,A01中过滤方式为:

T00:遍历A00中筛选出的<a>标签,计算出标签的坐标位置并存放于标签横坐标于标签坐标数组中;

T01:过滤掉纵坐标大于浏览器高度的<a>标签;

T02:预设表示页面导航列表个数的基准值;

T03:判断标签坐标数组中横坐标相同的个数是否小于基准值;若是,删除该横坐标对应的<a>标签。

请参阅图3所示,S03中通过js技术从页面中获取页面元素规则具体过程如下:

POO:客户端开启一个web服务器;

PO1:加载页面URL时,在页面中新增form表单;给点击元素设置点击事件,通过点击元素获取该元素的各属性值,然后通过form表单提交到web服务器;

PO2:web服务器接收form表单发送的数据并展示在客户端;客户端存储规则,同步到服务端。

其中,行数大小M范围为1<M<正文行总数;行块字符数N为行块内字符总数。

其中,骤降点判断依据为第一个满足当前点的下一点纵坐标为0;骤升点判断依据为第一个满足当前点的下一点纵坐标大于行块字数阈值;正文区域为骤升点与骤降点间的字符。

值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

python的智能算法_基于pythonQT及智能算法的快速规则定制方法与流程相关推荐

  1. python知识点智能问答_基于检索的智能问答

    基于检索的智能问答.目前使用了简单词汇对比.词性权重.词向量3种相似度计算模式.输入符合格式的QA文本文件即可立刻使用. 程序版本和依赖库 使用 python3 运行 jieba 分词使用的库 gen ...

  2. python语音控制智能家电_基于树莓派的智能家居语音控制系统

    2018-10 基于树莓派的智能家居语音控制系统 Intelligent home voice control system based on raspberry Pi 刘 华 , 田占生 , 冯宇飞 ...

  3. 图像重建算法_基于深度学习图像重建算法(DLIR)对CT图像质量和剂量优化的研究:体模实验...

    编者按:今年Joël Greffier博士等在European Radiology (IF 4.1)上发表了题为<Image quality and dose reduction opportu ...

  4. java智能家居_基于JAVA的智能家居控制系统的设计(毕业设计).doc

    基于JAVA的智能家居控制系统的设计(毕业设计) 基于JAVA的智能家居系统的设计--信息控制子系统 PAGE 4 目 录 TOC \o "1-3" \h \z \u HYPERL ...

  5. java抢单功能_基于消息队列的高并发抢单功能实现方法与流程

    本发明涉及嵌入式软件中间件,具体涉及一种基于消息队列的高并发抢单功能实现方法. 背景技术: 中间件是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络 ...

  6. 大数据催生智慧园区_基于人工智能的智慧园区异构设备统一接入方法与流程

    [技术领域] 本发明涉及智慧园区建设技术领域,尤其涉及基于人工智能的智慧园区异构设备统一接入方法. 背景技术: 智慧园区是一种以互联网.物联网.云计算.大数据等先进信息技术为支撑,在信息服务等各个环节 ...

  7. #时间预测算法_基于超级学习者机器学习算法预测ICU患者急性低血压发作

    点击"蓝字"关注,更多精彩内容! 背景 急性低血压发作(AHE),定义为平均动脉压下降至<65mmHg且至少持续5分钟,是重症监护病房(ICU)最严重的不良事件,往往导致重症 ...

  8. catia直线测距怎么调出来_基于CATIA和激光跟踪仪的部件设计检验一体化方法与流程...

    本发明涉及零部件制造装配检验领域,具体涉及一种基于CATIA和激光跟踪仪的部件设计与检验一体化方法. 背景技术: 机械产品的生产过程一般分为设计.零件制造.组部件装配和检验四个部分,其中检验贯穿产品整 ...

  9. (四)协同过滤算法之基于用户的推荐算法python实现

    一.背景 关于推荐算法的相关背景介绍,已经在上一个姊妹篇(三)协同过滤算法之基于物品的推荐算法python实现中有所介绍.在此,便不在赘述,本文主要介绍基于用户的协同过滤算法,而对推荐算法不太清楚的朋 ...

  10. 基于linux的智能小车_基于ARM10与LINUX智能小车系统设计.doc

    基于ARM10与LINUX智能小车系统设计 基于ARM的智能小车系统的设计 摘 要 基于ARM的嵌入式系统其性能优良,移植性好,已广泛应用在各个行业,因此将ARM微处理器应用于智能小车的控制系统是一种 ...

最新文章

  1. python与tableau结合_Python与Tableau相结合,万字长文搞定传统线下连锁店数据分析...
  2. numba.jit警告:Compilation is falling back to object mode WITH looplifting enabled because Function
  3. carsim学习笔记5——carsim与simulink联合仿真
  4. boost::cuthill_mckee_ordering用法的测试程序
  5. Swoole安装make报错 因为php-config配错
  6. 第三届Apache Flink 极客挑战赛暨AAIG CUP攻略发布!
  7. 作者:张峰(1978-),男,博士,国家海洋信息中心副研究员
  8. Linux(Ubuntu)内存查询top命令详解
  9. 算法高级(47)-AI现在都可以写代码了-辅助编程
  10. 使用命令行编译Less源文件
  11. 2021年终总结模板.pptx(附下载链接)
  12. html缓存效果代码,html5缓存(示例代码)
  13. 【渝粤教育】广东开放大学 操作系统原理与应用 形成性考核 (46)
  14. 谈谈我心目中理想的牛人
  15. 资深大学老师告诉你:嵌入式、单片机开发必备软件有哪些
  16. overleaf官网登录注册报错:Sorry, we could not verify that you are not a robot.
  17. 登录失败:禁用的当前账户——window共享的傻X问题
  18. 关于XShell下载安装和连接Ubuntu(linux)
  19. 计算机丢失mfc140ud.dll,mfc140ud.dll
  20. 认知科学早期的计算机隐喻理论是什么,相对于认知科学,首先我们得从这六个问题着手...

热门文章

  1. Hue添加Spark notebook
  2. 韩顺平老师的学习方法
  3. 奶爸业余单片机学习之:C语言基础——for循环及for嵌套
  4. 警告:Vista存高风险 不宜过早安装
  5. HCIE-Security Day2:防火墙安全区域、安全级别的理解
  6. C# 替换string字符串指定位置的字符
  7. 游戏开发筑基之输出中设置颜色(C语言)
  8. Security+ 学习笔记9 软件开发周期
  9. Java语言中:switch语句经典习题
  10. apache网络服务的搭建和配置