一种数据抓取方法、装置及介质制造方法及图纸

技术编号:33352814 阅读:33 留言:0更新日期:2022-05-08 10:02
本发明专利技术涉及爬虫技术领域,具体提供了一种数据抓取方法,利用Python环境和selenium自动化测试工具,调用浏览器发起网页访问请求,模拟用户操作,打开页面,在页面中提取目标数据,得到网页渲染后的结果,获取返回页面中的数据。与现有技术相比,本发明专利技术的在面对反爬虫机制时,通过一系列操作,能够有效避免反爬虫机制,大大提高了数据采集的门槛。大大提高了数据采集的门槛。大大提高了数据采集的门槛。

【技术实现步骤摘要】
一种数据抓取方法、装置及介质


[0001]本专利技术涉及爬虫
,具体提供一种数据抓取方法、装置及介质。

技术介绍

[0002]网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。爬虫的工作流程较为复杂,从一个或若干初始网页的URL开始,根据一定的网页分析算法过滤与主题无关的链接,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。
[0003]现有的网络爬虫在模拟请求的时候需要把所有的通信流程都分析完成后才能通过请求,然后返回响应结果,中间的通信流程比较复杂。有的网络需要发送大量ajax请求,异步获取数据渲染到页面上,网络爬虫无法对异步请求及时的响应和处理。而且有的网站加入了反爬虫机制,普通的网络爬虫不太适用。

技术实现思路

[0004]本专利技术是针对上述现有技术的不足,提供一种实用性强的数据抓取方法。
[0005]本专利技术进一步的技术任务是提供一种设计合理,安全适用的数据抓取装置。
[0006]本专利技术进一步的技术任务是提供一种计算机可读介质。
[0007]本专利技术解决其技术问题所采用的技术方案是:
[0008]一种数据抓取方法,利用Python环境和selenium自动化测试工具,调用浏览器发起网页访问请求,模拟用户操作,打开页面,在页面中提取目标数据,得到网页渲染后的结果,获取返回页面中的数据。
[0009]进一步的,selenium自动化测试工具包括Selenium IDE和Selenium WebDriver;
[0010]所述Selenium IDE为嵌入到FireFox浏览器的插件,用于在Firefox上录制和回放Selenium脚本,将录制好的脚本转换成各种Selenium WebDriver支持的程序语言。
[0011]进一步的,所述Selenium WebDriver用于操作浏览器的一套API,支持各类型浏览器,跨操作系统,WebDriver为诸多语言提供完备的,用于实现web自动化测试的第三方库。
[0012]进一步的,在Python环境下使用Selenium自动化工具抓取数据的步骤:
[0013]S1、安装Python开发环境和selenium;
[0014]S2、在Python环境下,安装WebDriver浏览器驱动;
[0015]S3、使用代理Ip、端口、隐藏selenium配置项或控制事先打开的浏览器来解决反爬虫机制;
[0016]S4、模仿真实用户浏览网页;
[0017]S5、抓取有用数据存储到文档存储工具;
[0018]S6、重复执行步骤S4和步骤S5,直到目标数据采集完成。
[0019]进一步的,在步骤S4中,根据具体的网页结构,利用WebDriver定位元素特性,模仿
真实用户浏览网页,在两次点击按钮之间稍停顿几秒,编写完成数据抓取逻辑代码。
[0020]进一步的,在步骤S4中,进一步的包括:
[0021]S4

1、从Selenium包导入WebDriver使用Selenium WebDriver的方法;
[0022]S4

2、使用Selenium包提供的接口去调用Selenium命令来跟浏览器交互;
[0023]S4

3、设置20

40秒隐式等待时间来定义Selenium执行步骤的超时时间;
[0024]S4

4、调用driver.get()方法访问该应用程序,方法调用后,WebDriver会等待,一直到页面加载完成才继续执行脚本;
[0025]S4

5、Selenium WebDriver来定位和操作元素;
[0026]S4

6、通过send_keys()方法输入新的特定值,调用submit()提交搜索请求;
[0027]S4

7、加载搜索结果页面,读取结果列表的内容并打印输出;通过find_elements_by_xpath获取路径满足class='c

abstract'的所有div标签,它将返回多于一个的元素列表;
[0028]S8、最后打印,获取到的标签的文本内容。
[0029]进一步的,在步骤S4

7中,在脚本的最后,使用driver.quit()来关闭浏览器。
[0030]进一步的,在步骤S5中,使用代码利用WebDriver组件启动浏览器,运行逻辑代码,将抓取到的有用数据存储到数据库、Excel或记事本。
[0031]一种数据抓取装置,包括:至少一个存储器和至少一个处理器;
[0032]所述至少一个存储器,用于存储机器可读程序;
[0033]所述至少一个处理器,用于调用所述机器可读程序,执行一种数据抓取方法。
[0034]一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行一种数据抓取方法。
[0035]本专利技术的一种数据抓取方法、装置及介质和现有技术相比,具有以下突出的有益效果:
[0036]本专利技术利用selenium自动化测试工具,通过代码完全模拟成人类使用浏览器自动访问目标站点并操作,进而拿到网页渲染之后的效果,避开了一系列复杂的通信流程,能够方便的处理异步请求,有效提高了数据抓取的能力。并且,在面对反爬虫机制时,通过一系列操作,能够有效避免反爬虫机制,大大提高了数据采集的门槛。
附图说明
[0037]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]附图1是一种数据抓取方法的流程示意图。
具体实施方式
[0039]为了使本
的人员更好的理解本专利技术的方案,下面结合具体的实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下
所获得的所有其他实施例都属于本专利技术保护的范围。
[0040]下面给出一个最佳实施例:
[0041]如图1所示,本实施例中的一种数据抓取方法,利用Python环境和selenium自动化测试工具,调用浏览器发起网页访问请求,模拟用户操作,打开页面,在页面中提取目标数据,得到网页渲染后的结果,获取返回页面中的数据,从而达到数据批量抓取的效果。另外本专利技术做了一些额外处理,能够有效的防止反selenium爬虫策略。
[0042]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据抓取方法,其特征在于,利用Python环境和selenium自动化测试工具,调用浏览器发起网页访问请求,模拟用户操作,打开页面,在页面中提取目标数据,得到网页渲染后的结果,获取返回页面中的数据。2.根据权利要求1所述的一种数据抓取方法,其特征在于,selenium自动化测试工具包括SeleniumIDE和Selenium WebDriver;所述Selenium IDE为嵌入到FireFox浏览器的插件,用于在Firefox上录制和回放Selenium脚本,将录制好的脚本转换成各种Selenium WebDriver支持的程序语言。3.根据权利要求2所述的一种数据抓取方法,其特征在于,所述Selenium WebDriver用于操作浏览器的一套API,支持各类型浏览器,跨操作系统,WebDriver为诸多语言提供完备的,用于实现web自动化测试的第三方库。4.根据权利要求3所述的一种数据抓取方法,其特征在于,在Python环境下使用Selenium自动化工具抓取数据的步骤:S1、安装Python开发环境和selenium;S2、在Python环境下,安装WebDriver浏览器驱动;S3、使用代理Ip、端口、隐藏selenium配置项或控制事先打开的浏览器来解决反爬虫机制;S4、模仿真实用户浏览网页;S5、抓取有用数据存储到文档存储工具;S6、重复执行步骤S4和步骤S5,直到目标数据采集完成。5.根据权利要求4所述的一种数据抓取方法,其特征在于,在步骤S4中,根据具体的网页结构,利用WebDriver定位元素特性,模仿真实用户浏览网页,在两次点击按钮之间稍停顿几秒,编写完成数据抓取逻辑代码。6.根据权利要求5所述的一种数据抓取方法,其特征在于,在步骤S4中,进一步的包括:S4

1、从Selenium包导入WebDriver使用Selenium WebDriver的方...

【专利技术属性】
技术研发人员:麻荣雨李宁高鹏超毕云鹏
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1