一种基于B2B平台的多线程数据抓取方法技术

技术编号:13569602 阅读:162 留言:0更新日期:2016-08-21 11:58
本发明专利技术公开了一种基于B2B平台的多线程数据抓取方法,1)将B2B平台的首页、多级类型目录结构作为目标对象,对网页源文件进行分析;2)在URL处理器中分析出需要的目标规则;3)通过HTTP解析器,从隧道协议中获取一定格式的数据;4)对每次URL请求分配新的线程,通过多线程模式并发处理;5)通过分类管理器进行管理每一种商品大类到小类的规则;6)对该线程超时的设置;7)根据所述固定格式数据,将所有提取的商品数据内容保存至数据库;本发明专利技术提供的基于B2B平台的多线程数据抓取方法,在大数据并发实时采集、多线程数据抓取上有显著的效果。

【技术实现步骤摘要】

本专利技术涉及一种基于B2B平台的多线程数据抓取方法
技术介绍
电子商务发展至今,通过了解竞争对手方面,各项信息内容,包括产品、销量,用户数等;这些数据只有在平台上通过技术手段进行获取。当竞争对手网站出现信息产品信息,或者更新产品信息时,通过我们B2B平台的多线程数据抓取方法,将很高效获取竞争对手的所有数据。国内现有的数据抓取方法,特别是针对B2B平台的采集,以及在大数据并发计算中,再实时性以及大数据量的情况下,容易出现很多问题或者无法保证实时性,比如:中国专利CN201210141520.5,给出了一种数据抓取系统,所述系统包括钩子加载模块、抓取钩子模块、配置文件生成模块。钩子加载模块用以根据进程数量生成设定数量的抓取钩子模块,配置给需要抓取的进程。抓取钩子模块用以监控其对应进程中业务数据的传递,并抓取相应的业务数据。提出的数据抓取系统,可方便快捷地抓取其他C/S结构业务系统的数据,并提供给其他业务系统录入。可抓取C/S构架中的WINDOWS窗口中的控件数据,对其他业务系统进行窗口数据抓取,并将抓取到的数据按照可配置的格式写入文件,提供给其他系统的数据的输入。该方法属于在C/S架构中进行数据抓取,无法适用于网页以及B2B的网站中。中国专利CN201510378181.6,提出的方法包括:接收针对各个平台所需的目标数据分别设置的数据抓取参数;根据针对各个平台设置的所述数据抓取参数执行相应的数据抓取规则,在互联网上抓取所述平台所需的目标数据;对抓取的所述目标数据进行展示;接收对展示的所述目标数据的筛选操作,并且将筛选后的所述目标数据发布到所述平台的页面专区中。简化了运营人员获取目标数据的操作步骤,降低了运营人员获取目标数据的工作量,同时大幅度提高了发布的文章资讯的数量和质量,平均每位运营人员每天可以发布优质文章的数量大大增加。该方法主要解决目标数据筛选的操作问题,以及对专有目标数据进行处理,在B2B网站中无法实施该内容。
技术实现思路
专利技术目的:为了解决B2B网站在多线程抓取和对隐藏内容的调用获取,本专利技术提供一种基于B2B平台的多线程数据抓取方法,针对B2B平台多级调用,嵌套调用获取内容的数据抓取,以及隐含内容的抓取方法。B2B平台的多线程数据抓取方法针对各脚本文件,包括样式,嵌套调用等难以解决获取数据的问题,并且通过该方法高效的解决了该问题。本专利技术的技术方案是,一种基于B2B平台的多线程数据抓取方法,其特征在于:包括如下步骤:(1)将B2B平台的首页、多级类型目录结构作为目标对象,对网页源文件进行分析,对B2B平台数据源的商品数据进行实时采集的方法为:在源文件中剔除无用的信息内容,剔除方式通过我们的标签库来递归调用;源文件分析出有效URL,将URL转移至下一步骤;(2)在URL处理器中分析出们需要的目标规则,再做一次URL请求,获取下一层的源码内容,将源码内容放置缓冲区,然后将缓冲区的内容转移至下一目标任务进行处理;对该源码内容部分代码过滤其中不需要的内容,如广告信息、版权信息、标签标记等,以达到去伪存精的目的;找到源码内容循环分页的规律,并将源码内容进行分离。(3)通过HTTP解析器,从隧道协议中获取一定格式的数据(键值对形式数据,包装数组结构数据,以及特征字符的结构数据),进行提取为我们所需要的目标数据结果,再次对该结果进行格式筛选,去除无效字符;开启多个发出HTTP请求的线程,每个URL请求只请求资源文件的相同格式部分内容,合并每个线程下载的文件;为了在很多情况下减少发送请求,同时在许多情况下可以不需要发送全部html内容。减少了网络回路的数量,也减少了网络应用的带宽。(4)线程处理,对每次URL请求分配新的线程,通过多线程模式并发处理。通过线程管理器实现多线程调用操作,当某一线程失败时将自动挂起;并且每个请求需要一个单独的线程完成;在线程池中,线程数一般是固定的,线程总数不超过线程池中所能容纳线程的数目,当服务器不利用线程池时处理这些请求时则请求线程总数不大于50000;(5)分类管理器,通过分类管理器进行管理每一种商品大类到小类的规则,当数据匹配规则成功后,将首先获取大类商品源码,再递归调用子类商品源码文件。(6)通过对该线程超时的设置,当该超时区间时间内检测不到该线程是否执行成功,那么对该线程处理标记进行设置为失败,当在系统空闲状态时自动触发该线程重新启动。线程池将基于识别直接处理,或增加工作者数处理,进入待处理队列,其他线程池会直接将任务放入待处理队列,等待工作线程去取出执行。(7)通过固定格式、指键值对形式数据,包装数组结构数据,以及特征字符的结构数据格式,将所有提取的商品数据内容保存至数据库中。有益效果:本专利技术提供了一种基于B2B平台的多线程数据抓取方法,针对B2B平台多级调用,嵌套调用获取内容的数据抓取,以及隐含内容的抓取方法,且针对各脚本文件,包括样式、嵌套调用等难以解决获取数据的问题,高效的解决了该问题。附图说明图1为本专利技术方法的实施流程图。具体实施方式本专利技术基于B2B平台的多线程数据抓取方法,包括如下步骤:(1)将B2B平台的首页、多级类型目录结构作为目标对象,对网页源文件进行分析,对数据源的数据进行实时采集的方法为:在源文件中剔除无用的信息内容,剔除方式通过标签库来递归调用;所述标签库为一系列的Html常用标签字符类型,该类型存放于内存数组中,通过循环调用匹配,最终剔除无用信息。源文件分析出有效URL,将URL转移至下一步骤;(2)在URL处理器中分析出我们需要的目标规则,再做一次URL请求,获取下一层的源码内容,将内容放置缓冲区,我们将缓冲区的内容转移至下一目标任务进行处理;对该部分代码过滤其中不需要的内容,如广告信息、版权信息、标签标记等,以达到去伪存精的目的。找到循环分页的规律,并将内容进行分离。(3)通过HTTP解析器,从隧道协议中获取一定格式的数据,即键值对形式数据,包装数组结构数据,以及特征字符的结构数据进行提取为我们所需要的目标数据结果,再次对该结果进行格式筛选。开启多个发出HTTP请求的线程,每个HTTP请求只请求资源文件的一部分,合并每个线程下载的文件,为了在很多情况下减少发送请求,同时在许多情况下可以不需要发送完整响应。减少了网络回路的数量,也减少了网络应用的带宽。(4)线程处理,对每次url请求分配新的线程,通过多线程模式并发处理。通过线程管理器实现多线程调用操作,当线程失败时将自动挂起。当一个服务器一天要处理50000个请求时,并且每个请求需要一个单独的线程完成。在线程池中,线程数一般是固定的,线程总数不超过线程池中线程的数目,当服务器不利用线程池时处理这些请求则线程总数为50000。一般线程池大小是远小于50000。利用线程池不会为了创建50000线程而在处理请求时浪费时间,从而提高效率。(5)分类管理器,通过分类管理器进行管理每一种商品大类到小类的规则,当数据匹配规则成功后,将首先获取大类源码,再递归调用子类源码文件。(6)通过对该线程超时的设置,当该超时区间时间内检测不到该线程是否执行成功,那么对该线程处理标记进行设置为失败,当在系统空闲状态时自动触发该线程重新启动。线程池将基于识别直接处理,或增本文档来自技高网
...

【技术保护点】
一种基于B2B平台的多线程数据抓取方法,其特征在于:包括如下步骤:(1)将B2B平台的首页、多级类型目录结构作为目标对象,对网页源文件进行分析,对B2B平台数据源的商品数据进行实时采集的方法为:在源文件中剔除无用的信息内容,剔除方式通过的标签库来递归调用;源文件分析出有效URL,将URL转移至下一步骤;(2)在URL处理器中分析出需要的目标规则,再做一次URL请求,获取下一层的源码内容,将源码内容放置缓冲区,然后将缓冲区的内容转移至下一目标任务进行处理;对该源码内容部分代码过滤其中不需要的内容,包括广告信息、版权信息、标签标记,以达到去伪存精的目的;找到源码内容循环分页的规律,并将源码内容进行分离;(3)通过HTTP解析器,从隧道协议中获取一定格式的数据、一定格式表示为键值对形式的数据,包装数组结构的数据、以及特征字符的结构数据;数据提取为所需要的目标数据结果,再次对该结果进行格式筛选,去除无效字符;开启多个发出HTTP请求的线程,每个URL请求只请求资源文件的一部分,合并每个线程下载的文件;(4)线程处理,对每次URL请求分配新的线程,通过多线程模式并发处理;通过线程管理器实现多线程调用操作,当某一线程失败时将自动挂起;并且每个请求需要一个单独的线程完成;在线程池中,线程数是固定的,线程总数不超过线程池中所能容纳线程的数目,当服务器不利用线程池时处理这些请求时则请求线程总数不大于50000;(5)分类管理器,通过分类管理器进行管理每一种商品大类到小类的规则,当数据匹配规则成功后,将首先获取大类商品源码,再递归调用子类商品源码文件;(6)通过对该线程超时的设置,当该超时区间时间内检测不到该线程是否执行成功,那么对该线程处理标记进行设置为失败,当在系统空闲状态时自动触发该线程重新启动;线程池将基于识别直接处理,或增加工作者数处理,进入待处理队列,其他线程池会直接将任务放入待处理队列,等待工作线程去取出执行;(7)根据所述固定格式数据,将所有提取的商品数据内容保存至数据库中。...

【技术特征摘要】
1.一种基于B2B平台的多线程数据抓取方法,其特征在于:包括如下步骤:(1)将B2B平台的首页、多级类型目录结构作为目标对象,对网页源文件进行分析,对B2B平台数据源的商品数据进行实时采集的方法为:在源文件中剔除无用的信息内容,剔除方式通过的标签库来递归调用;源文件分析出有效URL,将URL转移至下一步骤;(2)在URL处理器中分析出需要的目标规则,再做一次URL请求,获取下一层的源码内容,将源码内容放置缓冲区,然后将缓冲区的内容转移至下一目标任务进行处理;对该源码内容部分代码过滤其中不需要的内容,包括广告信息、版权信息、标签标记,以达到去伪存精的目的;找到源码内容循环分页的规律,并将源码内容进行分离;(3)通过HTTP解析器,从隧道协议中获取一定格式的数据、一定格式表示为键值对形式的数据,包装数组结构的数据、以及特征字符的结构数据;数据提取为所需要的目标数据结果,再次对该结果进行格式筛选,去除无效字符;开启多个发出HTTP请求的线程,每个URL请求只请求资源文件的一部分,合并每个线程下载的文件;(4)线程处理,对每次URL请求分配新的线程,通过多线程模式并发处理;通过线程管理器实现多线程调用操作,当某一线程失败时将...

【专利技术属性】
技术研发人员:徐飞
申请(专利权)人:焦点科技股份有限公司
类型:发明
国别省市:江苏;32

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

1