一种基于模拟浏览器访问的网页数据获取和存储的系统的制作方法

文档序号:20165103发布日期:2020-03-24 21:24阅读:300来源:国知局
一种基于模拟浏览器访问的网页数据获取和存储的系统的制作方法

本发明涉及计算机和通信领域,具体而言,涉及一种基于模拟浏览器访问的网页数据获取和存储的系统。



背景技术:

目前想从海量数据中获取自己需要的数据就需要借助于网络爬虫,但是互联网数据的实际拥有者(网站管理人员)又会想办法甄别网络爬虫,保护自己的数据。因为这些网站有严格的反爬策略,部分数据必须要用户登录才可见,持续访问还会出现滑块验证码,扫码登录等手段,普通的数据爬取方式已经很难获取到想要的数据,需要有针对性的定制化的数据获取方法。还会存在以下问题:①使用requests库访问页面多次会出现限制ip的问题,此时可才用ip代理池解决,但大多数好的ip代理池价格昂贵。②可伪装成浏览器,通过切换useragent和保存cookies实现页面登录,但毕竟requests库爬虫框架运用较为广泛,对于反爬较为强硬的网站,工作人员已经开发出可自动识别requests的反爬系统,故该方式无法生效。③对于一些简单的验证码或者滑动块验证方式,requests库目前还没有高效的解决方法。另外,基于scrapy库异步网络爬取的爬虫框架,是封装起来的框架,它包含了下载器,解析器,日志及异常处理,基于多线程,twisted的方式处理,对于单个网站的爬取有优势,但是对于多网站的爬取,并发及分布式方面,不够灵活,不便调整及扩展,且不支持分布式部署。原生不支持抓取javascript的页面,全命令行操作,对用户不友好。如专利号为cn107885777a公开了一种基于协作式爬虫的抓取网页数据的控制方法及系统,解决从网页层次结构较深或详情页面较多的网站抓取数据花费时间过多,抓取效率低的问题。又如专利号为cn106775611a公开一种基于机器学习的自适应动态网页爬虫系统的实现方法,得到抓取网页范围列表,但依然存在爬取不够灵活的缺点。

综合上,在计算机领域,其实际应用中的亟待处理的实际问题还有很多未提出具体的解决方案。



技术实现要素:

本发明提出了一种基于模拟浏览器访问的网页数据获取和存储的系统以解决所述问题。

为了实现上述目的,本发明采用如下技术方案:

一种基于模拟浏览器访问的网页数据获取和存储的系统,包括如下步骤:

(1)安装浏览器插件;

(2)将安装成功后的浏览器插件中可执行文件复制到编程软件安装文件夹中的脚本文件夹中;

(3)修改环境变量,将所述浏览器插件添加至系统环境变量的路径名称下;

(4)将所需爬取的数据的网页链接添加至系统模型中;

(5)所述浏览器插件自动获取所述网页链接,并模仿人的行为打开新的浏览器界面;

(6)判断并获取网页数据;

(7)在js中获取网页元素,模拟点击翻页按钮执行翻页操作;若出现拖滑块操作或验证登录,浏览器出现可视化界面,方便用户进行手动操作,进入网页;若无出现拖滑块操作或验证登录,则直接进入网页;

(8)判断是否为列表页,若是则直接获取数据,若否则刷新页面,获取得到原生数据经过函数处理,得到所需数据;

(9)将处理后的数据存储进据库。

可选地,所述浏览器插件应用于指定浏览器。

可选地,所述安装浏览器插件包括根据所述浏览器插件的数字签名信息和所述指定浏览器的浏览器信息,根据所述浏览器信息验证所述浏览器插件的数字签名信息,当所述浏览器信息与数字签名信息匹配,则所述浏览器插件合法,完成安装。

可选地,所述修改环境变量包括识别至少一个应用程序的默认环境变量,通过生成模块将默认环境变量生成包含有修改后的环境变量的文件,且获取修改后的环境变量时,加载所述修改后的环境变量对应的配置文件,根据所述加载配置文件记录配置信息,根据所述配置信息运行对应项目进程。

可选地,所述模仿人的行为指的是模拟用户行为的方式对网页的访问操作并发送网页访问请求后,打开新的浏览器界面。

可选地,判断并获取网页数据包括获取所述网页链接信息并识别出所述网页链接信息中的内容,从识别的所述网页链接信息中通过数据源服务器获取与所述目标数据,并基于预设判断规则判断所述目标数据是否为所述爬取的数据,并将结果反馈至环境变量路径,并更新所述环境变量路径列表。

可选地,所述网页能进行实时排序,输出爬取数据的列表并将其储存进数据库中。

可选地,所述模拟用户行为通过浏览器模式发送网页访问请求。

与现有技术相比,本发明所取得的有益技术效果是:

1、本发明的基于模拟浏览器插件的网页数据获取和存储的系统绿色无毒且内存占比小;且通过模仿用户正常访问网站的方式获取网站数据,降低被网站识别为爬虫的概率。

2、本发明的基于模拟浏览器插件的网页数据获取和存储的系统不仅可以自动翻页,自动采集数据,登录网站后基本不需要太多的人工参与即可完成数据获取,还可以通过可视化界面,进行人工拖动滑块或扫码登录,通过滑块验证码的检测等新型反爬机制,具有良好的推广应用价值。

3、本发明的基于模拟浏览器插件的网页数据获取和存储的系统能自动对数据进行清洗,提取用户所需的数据,促进数据获取的效率,且通过模拟清洗后的数据,能自动存于与模型相连接的数据库中,具有方便存取的优点。

附图说明

从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在不同的视图中,相同的附图标记指定对应的部分。

图1是本发明实施例之一中一种基于模拟浏览器访问的网页数据获取和存储的系统的示意图。

具体实施方式

为了使得本发明的目的、技术方案及优点更加清楚明白,以下结合其实施例,对本发明进行进一步详细说明;应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员而言,在查阅以下详细描述之后,本实施例的其它系统、方法和/或特征将变得显而易见。旨在所有此类附加的系统、方法、特征和优点都包括在本说明书内、包括在本发明的范围内,并且受所附权利要求书的保护。在以下详细描述描述了所公开的实施例的另外的特征,并且这些特征根据以下将详细描述将是显而易见的。且实施例仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

本发明为一种基于模拟浏览器访问的网页数据获取和存储的系统,根据图所示讲述以下实施例:

实施例一:

一种基于模拟浏览器访问的网页数据获取和存储的系统,包括如下:

(1)安装浏览器插件,且所述浏览器插件应用于指定浏览器;其中,所述安装浏览器插件包括根据所述浏览器插件的数字签名信息和所述指定浏览器的浏览器信息,根据所述浏览器信息验证所述浏览器插件的数字签名信息,当所述浏览器信息与数字签名信息匹配,则所述浏览器插件合法,完成安装。

(2)将安装成功后的浏览器插件中可执行文件复制到编程软件安装文件夹中的脚本文件夹中;

(3)修改环境变量,将所述浏览器插件添加至系统环境变量的路径名称下,且所述修改环境变量包括识别至少一个应用程序的默认环境变量,通过生成模块将默认环境变量生成包含有修改后的环境变量的文件,且获取修改后的环境变量时,加载所述修改后的环境变量对应的配置文件,根据所述加载配置文件记录配置信息,根据所述配置信息运行对应项目进程;

(4)将所需爬取的数据的网页链接添加至系统模型中;

(5)所述浏览器插件自动获取所述网页链接,并模仿人的行为打开新的浏览器界面;

(6)判断并获取网页数据;具体包括获取所述网页链接信息并识别出所述网页链接信息中的内容,从识别的所述网页链接信息中通过数据源服务器获取与所述目标数据,并基于预设判断规则判断所述目标数据是否为所述爬取的数据,并将结果反馈至环境变量路径,并更新所述环境变量路径列表;

(7)在js中获取网页元素,模拟点击翻页按钮执行翻页操作;若出现拖滑块操作或验证登录,浏览器出现可视化界面,方便用户进行手动操作,进入网页;若无出现拖滑块操作或验证登录,则直接进入网页;

(8)判断是否为列表页,若是则直接获取数据,若否则刷新页面,获取得到原生数据经过函数处理,得到所需数据;

(9)所述网页能进行实时排序,输出爬取数据的列表并将其储存进数据库中。

其中,所述模仿人的行为指的是模拟用户行为的方式对网页的访问操作并发送网页访问请求后,打开新的浏览器界面;所述模拟用户行为通过浏览器模式发送网页访问请求。

实施例二:

一种基于模拟浏览器访问的网页数据获取和存储的系统,包括如下:

在本实施例中,首先需要安装浏览器插件,且所述浏览器插件应用于指定浏览器;其中,所述安装浏览器插件包括根据所述浏览器插件的数字签名信息和所述指定浏览器的浏览器信息,根据所述浏览器信息验证所述浏览器插件的数字签名信息,当所述浏览器信息与数字签名信息匹配,则所述浏览器插件合法,通过谷歌浏览器插件的安装指令完成安装,在本实施例中所述浏览器为谷歌浏览器,对于谷歌浏览器插件来说,每个谷歌浏览器插件均包括插件声明,所述插件声明包括所述浏览器插件所要调用的api名称,且所述插件声明可以为列表形式,如,浏览器插件a的声明中包括api1、api2和api3,则可以理解为该浏览器插件a在运行时需调用api1、api2和api3。

然后,将安装成功后的浏览器插件中可执行文件复制到编程软件安装文件夹中的脚本文件夹中;具体为:将安装成功后的谷歌插件中.exe可执行文件copy到python安装文件夹的script文件夹中;

进一步修改环境变量,将所述谷歌浏览器插件添加至系统环境变量的路径名称下,且所述修改环境变量包括识别至少一个应用程序的默认环境变量,通过生成模块将默认环境变量生成包含有修改后的环境变量的文件,且获取修改后的环境变量时,加载所述修改后的环境变量对应的配置文件,根据所述加载配置文件记录配置信息,根据所述配置信息运行对应项目进程;具体为将放好至script文件中的谷歌浏览器插件添加进系统环境变量中的path名称下;

将所需爬取的数据的网页链接添加至系统模型中,在本实施例中的系统模型为根据特征提取结构进行训练的系统模型。

在本例中所述浏览器插件自动获取所述网页链接,并模仿人的行为打开新的浏览器界面,且所述模仿人的行为指的是模拟用户行为的方式通过浏览器模式发送网页的访问操作并发送网页访问请求后,打开新的浏览器界面;所述模拟用户行为;进一步判断并获取网页数据;具体包括获取所述网页链接信息并识别出所述网页链接信息中的内容,从识别的所述网页链接信息中通过数据源服务器获取与所述目标数据,并基于预设判断规则判断所述目标数据是否为所述爬取的数据,并将结果反馈至环境变量路径,并更新所述环境变量路径列表;具体地,本实施例中获取网页数据包括对数据的过滤处理,包括行既过滤和列级过滤,行级过滤中将数据中不需要的行剔除掉,列级过滤中保留所需列对应的字段,

在js中获取网页元素,模拟点击翻页按钮执行翻页操作;若出现拖滑块操作或验证登录,浏览器出现可视化界面,方便用户进行手动操作,进入网页;若无出现拖滑块操作或验证登录,则直接进入网页;但需要读取网页的完整内容,具体可以包含异步加载的内容,如完整地呈现到浏览器窗口的内容,例如,针对不同用户端(如手机或者计算机设备)的网速、流量、设备速度、屏幕大小等原因,而导致获取到的网页内容不完整,如只有网页的骨架而无内容,需要等待js异步加载内容。此时,本申请可以使用带js执行引擎的浏览器驱动来执行网页内的异步加载js,解决异步加载问题,此外,还可以配合无界面浏览器的方式使用。且在本实施例中,在数据获取的过程中,还包括任务去重,以防止网页的重复抓取,比如a中包含了b的地址,b中又包含了返回a的地址,避免造成爬虫在a和b间死循环的问题。进一步判断是否为列表页,若是则直接获取数据,若否则刷新页面,获取得到原生数据经过函数处理,整合得到不同数据源的相同实体之间的链接关系具体可以包括下述处理过程:输入目标实体名和第一上下文参数,根据所述目标实体名从所述知识数据库中进行查找,获取与所述目标实体名相同的个数,如果所述个数为第一数量,则判断所述目标实体名是否为原始实体名词,如果所述个数为第二数量,则输出与所述目标实体名相同的第一实体名,如果所述个数为第三数量,则将多个第二实体名进行消歧处理;且在本实施例中如果所述目标实体名为所述原始实体名词,则将所述原始实体名词进行分割得到多个实体名词,根据所述多个实体名词分别从所述知识数据库中进行查找,获取与所述目标实体名相同的实体名。另外,本实施例所述将多个第二实体名进行消歧处理可以包括如下处理过程:将所述目标实体名的上下文参数和所述多个第二实体名的上下文参数分别进行自然语言处理得到词袋和词袋集,将所述词袋和所述词袋集分别进行相似度计算,获取相似度最大的词频,输出所述相似度最大的词频,能够提高数据的安全性。

在本例中,最后将所述网页能进行实时排序,输出爬取数据的列表并将其储存进数据库中。

综合上,本发明的基于模拟浏览器插件的网页数据获取和存储的系统绿色无毒且内存占比小;且通过模仿用户正常访问网站的方式获取网站数据,降低被网站识别为爬虫的概率,能自动对数据进行清洗,提取用户所需的数据,促进数据获取的效率。

虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。也就是说上面讨论的方法,系统和设备是示例。各种配置可以适当地省略,替换或添加各种过程或组件。例如,在替代配置中,可以以与所描述的顺序不同的顺序执行方法,和/或可以添加,省略和/或组合各种部件。而且,关于某些配置描述的特征可以以各种其他配置组合,如可以以类似的方式组合配置的不同方面和元素。此外,随着技术发展其中的元素可以更新,即许多元素是示例,并不限制本公开或权利要求的范围。

在说明书中给出了具体细节以提供对包括实现的示例性配置的透彻理解。然而,可以在没有这些具体细节的情况下实践配置,例如,已经示出了众所周知的电路,过程,算法,结构和技术而没有不必要的细节,以避免模糊配置。该描述仅提供示例配置,并且不限制权利要求的范围,适用性或配置。相反,前面对配置的描述将为本领域技术人员提供用于实现所描述的技术的使能描述。在不脱离本公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。

综上,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1