《一种单机爬虫抓取方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种单机爬虫抓取方法及系统.pdf(13页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104252530A43申请公布日20141231CN104252530A21申请号201410458191622申请日20140910G06F17/3020060171申请人北京京东尚科信息技术有限公司地址100080北京市海淀区杏石口路65号西杉创意园西区11C楼东段14层西段14层申请人北京京东世纪贸易有限公司72发明人廖耀华74专利代理机构北京邦信阳专利商标代理有限公司11012代理人金玺54发明名称一种单机爬虫抓取方法及系统57摘要本发明公开一种单机爬虫抓取方法及系统,方法包括获取至少一个包括URL、网站编号和类型的种子,将所述种子的URL作为当前URL,将所述种子。
2、的网站编号作为当前网站编号,将所述种子的类型作为当前类型;获取至少一个策略,根据所述策略确定至少一个爬虫抓取参数;根据所述当前类型获取与所述当前类型对应的规则;按照所述爬虫抓取参数从所述当前URL抓取网页数据,根据所述规则对所述网页数据进行解析获得解析数据。本发明通过策略确定爬虫抓取参数,以及时克服抓取过程中出现的问题,从而提高工作效率,延长抓取时间,以及适应多种类型的网站。51INTCL权利要求书3页说明书6页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书6页附图3页10申请公布号CN104252530ACN104252530A1/3页21一种单机爬虫抓取方法,。
3、其特征在于,包括步骤11,获取至少一个包括URL、网站编号和类型的种子,将所述种子的URL作为当前URL,将所述种子的网站编号作为当前网站编号,将所述种子的类型作为当前类型;步骤12,获取至少一个策略,根据所述策略确定至少一个爬虫抓取参数;步骤13,根据所述当前类型获取与所述当前类型对应的规则;步骤14,按照所述爬虫抓取参数从所述当前URL抓取网页数据,根据所述规则对所述网页数据进行解析获得解析数据。2根据权利要求1所述的单机爬虫抓取方法,其特征在于,所述步骤14中,如果在抓取所述网页数据或者对所述网页数据进行分析中出现异常情况,则保存所述异常情况。3根据权利要求2所述的单机爬虫抓取方法,其特。
4、征在于,所述策略包括种子陷入死循环处理策略、浏览器标志切换策略、COOKIE动态更新策略和/或代理IP切换策略。4根据权利要求3所述的单机爬虫抓取方法,其特征在于所述种子陷入死循环处理策略具体为所述爬虫抓取参数为允许或者拒绝从所述当前URL抓取网页数据,如果所述异常情况为当前URL陷入死循环,则所述爬虫抓取参数设置为拒绝从所述当前URL抓取网页数据,否则所述爬虫抓取参数设置为允许从所述当前URL抓取网页数据;所述浏览器标志切换策略具体为所述爬虫抓取参数为从所述当前URL抓取网页数据时所采用的浏览器标志,如果所述异常情况为从所述当前URL抓取网页数据失败或者达到预设定时时间,则将从所述当前URL。
5、抓取网页数据时所采用的浏览器标志更新为另一浏览器标志,否则不更新从所述当前URL抓取网页数据时所采用的浏览器标志;所述COOKIE动态更新策略具体为所述爬虫抓取参数为允许或者拒绝更新从所述当前URL抓取网页数据时的COOKIE,如果到达预设定时时间,则所述爬虫抓取参数设置为允许更新从所述当前URL抓取网页数据时的COOKIE,否则所述爬虫抓取参数设置为拒绝更新从所述当前URL抓取网页数据时的COOKIE;所述代理IP切换策略具体为所述爬虫抓取参数为允许或者拒绝更新从所述当前URL抓取网页数据时的代理IP,如果所述异常情况为从所述当前URL抓取网页数据失败或者达到预设定时时间,则所述爬虫抓取参数。
6、设置为允许更新从所述当前URL抓取网页数据时的代理IP,否则所述爬虫抓取参数设置为拒绝更新从所述当前URL抓取网页数据时的代理IP。5根据权利要求1所述的单机爬虫抓取方法,其特征在于,所述步骤14中,根据所述规则对所述网页数据进行解析获得解析数据,具体包括如果所述当前类型为主页URL,则根据主页URL相应的规则,对所述网页数据进行解析得到解析数据,如果解析数据中包括URL,则将解析数据中的URL作为类型为分页URL的种子保存;如果所述当前类型为分页URL,则根据分页URL相应的规则,对所述网页数据进行解析得到解析数据,如果解析数据中包括URL,则将解析数据中的URL作为类型为详情页URL的种子。
7、保存;如果所述当前类型为详情页URL,则根据主页URL相应的规则,对所述网页数据进行解析得到解析数据,保存所述解析数据中的网页内容。权利要求书CN104252530A2/3页36一种单机爬虫抓取系统,其特征在于,包括种子接收模块,用于获取至少一个包括URL、网站编号和类型的种子,将所述种子的URL作为当前URL,将所述种子的网站编号作为当前网站编号,将所述种子的类型作为当前类型;策略模块,用于获取至少一个策略,根据所述策略确定至少一个爬虫抓取参数;规则模块,用于根据所述当前类型获取与所述当前类型对应的规则;解析模块,用于按照所述爬虫抓取参数从所述当前URL抓取网页数据,根据所述规则对所述网页数。
8、据进行解析获得解析数据。7根据权利要求6所述的单机爬虫抓取系统,其特征在于,所述解析模块中,如果在抓取所述网页数据或者对所述网页数据进行分析中出现异常情况,则保存所述异常情况。8根据权利要求7所述的单机爬虫抓取系统,其特征在于,所述策略包括种子陷入死循环处理策略、浏览器标志切换策略、COOKIE动态更新策略和/或代理IP切换策略。9根据权利要求8所述的单机爬虫抓取系统,其特征在于所述种子陷入死循环处理策略具体为所述爬虫抓取参数为允许或者拒绝从所述当前URL抓取网页数据,如果所述异常情况为当前URL陷入死循环,则所述爬虫抓取参数设置为拒绝从所述当前URL抓取网页数据,否则所述爬虫抓取参数设置为允。
9、许从所述当前URL抓取网页数据;所述浏览器标志切换策略具体为所述爬虫抓取参数为从所述当前URL抓取网页数据时所采用的浏览器标志,如果所述异常情况为从所述当前URL抓取网页数据失败或者达到预设定时时间,则将从所述当前URL抓取网页数据时所采用的浏览器标志更新为另一浏览器标志,否则不更新从所述当前URL抓取网页数据时所采用的浏览器标志;所述COOKIE动态更新策略具体为所述爬虫抓取参数为允许或者拒绝更新从所述当前URL抓取网页数据时的COOKIE,如果到达预设定时时间,则所述爬虫抓取参数设置为允许更新从所述当前URL抓取网页数据时的COOKIE,否则所述爬虫抓取参数设置为拒绝更新从所述当前URL抓。
10、取网页数据时的COOKIE;所述代理IP切换策略具体为所述爬虫抓取参数为允许或者拒绝更新从所述当前URL抓取网页数据时的代理IP,如果所述异常情况为从所述当前URL抓取网页数据失败或者达到预设定时时间,则所述爬虫抓取参数设置为允许更新从所述当前URL抓取网页数据时的代理IP,否则所述爬虫抓取参数设置为拒绝更新从所述当前URL抓取网页数据时的代理IP。10根据权利要求6所述的单机爬虫抓取系统,其特征在于,所述解析模块中,根据所述规则对所述网页数据进行解析获得解析数据,具体包括如果所述当前类型为主页URL,则根据主页URL相应的规则,对所述网页数据进行解析得到解析数据,如果解析数据中包括URL,则。
11、将解析数据中的URL作为类型为分页URL的种子保存;如果所述当前类型为分页URL,则根据分页URL相应的规则,对所述网页数据进行解析得到解析数据,如果解析数据中包括URL,则将解析数据中的URL作为类型为详情页URL的种子保存;如果所述当前类型为详情页URL,则根据主页URL相应的规则,对所述网页数据进行解权利要求书CN104252530A3/3页4析得到解析数据,保存所述解析数据中的网页内容。权利要求书CN104252530A1/6页5一种单机爬虫抓取方法及系统技术领域0001本发明涉及网络爬虫相关技术,特别是一种单机爬虫抓取方法及系统。背景技术0002互联网拥有海量的数据和信息,如何把这些。
12、数据和信息转换为自己想要的东西,进而进行分析和处理是一件比较棘手的事情。网络爬虫的出现解决了所有的这些问题。0003目前多数的爬虫装置都只是简单的实现了爬取网页的功能,但是对于重复爬取、陷入死循环陷阱、制定防爬策略延长抓取时间等方面都没有好的体现。另外,目前的单机网络兼容性不好,不能解决同时抓取多种网站的抓取需求。发明内容0004基于此,有必要针对现有技术的现有的单机网络爬虫抓取机制工作效率底,抓取时间短,而且不能同时抓取多种类型的网站的技术问题,提供一种单机爬虫抓取方法及系统。0005一种单机爬虫抓取方法,包括0006获取至少一个包括URL、网站编号和类型的种子,将所述种子的URL作为当前U。
13、RL,将所述种子的网站编号作为当前网站编号,将所述种子的类型作为当前类型;0007获取至少一个策略,根据所述策略确定至少一个爬虫抓取参数;0008根据所述当前类型获取与所述当前类型对应的规则;0009按照所述爬虫抓取参数从所述当前URL抓取网页数据,根据所述规则对所述网页数据进行解析获得解析数据。0010一种单机爬虫抓取系统,包括0011种子接收模块,用于获取至少一个包括URL、网站编号和类型的种子,将所述种子的URL作为当前URL,将所述种子的网站编号作为当前网站编号,将所述种子的类型作为当前类型;0012策略模块,用于获取至少一个策略,根据所述策略确定至少一个爬虫抓取参数;0013规则模块。
14、,用于根据所述当前类型获取与所述当前类型对应的规则;0014解析模块,用于按照所述爬虫抓取参数从所述当前URL抓取网页数据,根据所述规则对所述网页数据进行解析获得解析数据。0015本发明通过策略确定爬虫抓取参数,以及时克服抓取过程中出现的问题,从而提高工作效率,延长抓取时间,以及适应多种类型的网站。附图说明0016图1为本发明一种单机爬虫抓取方法的工作流程图;0017图2为本发明一种单机爬虫抓取系统的结构模块图;0018图3为本发明一种单机爬虫抓取系统的最佳实施例的结构模块图。说明书CN104252530A2/6页6具体实施方式0019下面结合附图和具体实施例对本发明做进一步详细的说明。002。
15、0如图1所示为本发明一种单机爬虫抓取方法的工作流程图,包括0021步骤11,获取至少一个包括URL、网站编号和类型的种子,将所述种子的URL作为当前URL,将所述种子的网站编号作为当前网站编号,将所述种子的类型作为当前类型;0022步骤12,获取至少一个策略,根据所述策略确定至少一个爬虫抓取参数;0023步骤13,根据所述当前类型获取与所述当前类型对应的规则;0024步骤14,按照所述爬虫抓取参数从所述当前URL抓取网页数据,根据所述规则对所述网页数据进行解析获得解析数据。0025在步骤12中的策略,用于确定爬虫抓取参数,通过不同的策略,确定不同的爬虫抓取参数,从而在步骤14中,采用经过步骤1。
16、2所确定的爬虫抓取参数进行网页数据抓取。由于爬虫抓取参数是由步骤12的策略所确定的,因此,可以通过设定不同的策略,以满足不同的抓取需求,从而提高工作效率,延长抓取时间,以及适应多种类型的网站。0026在其中一个实施例中,所述步骤14中,如果在抓取所述网页数据或者对所述网页数据进行分析中出现异常情况,则保存所述异常情况。0027通过监测在抓取所述网页数据或者对所述网页数据进行分析中出现的异常情况,可以及时的将异常情况反馈给用户,防止资源浪费。0028在其中一个实施例中,所述策略包括种子陷入死循环处理策略、浏览器标志切换策略、COOKIE动态更新策略和/或代理IP切换策略。0029本实施例的策略中。
17、,种子陷入死循环处理策略用来防止重复爬取、陷入死循环陷阱,而浏览器标志切换策略、COOKIE动态更新策略和/或代理IP切换策略则可以延长抓取时间。0030在其中一个实施例中0031所述种子陷入死循环处理策略具体为所述爬虫抓取参数为允许或者拒绝从所述当前URL抓取网页数据,如果所述异常情况为当前URL陷入死循环,则所述爬虫抓取参数设置为拒绝从所述当前URL抓取网页数据,否则所述爬虫抓取参数设置为允许从所述当前URL抓取网页数据;0032所述浏览器标志切换策略具体为所述爬虫抓取参数为从所述当前URL抓取网页数据时所采用的浏览器标志,如果所述异常情况为从所述当前URL抓取网页数据失败或者达到预设定时。
18、时间,则将从所述当前URL抓取网页数据时所采用的浏览器标志更新为另一浏览器标志,否则不更新从所述当前URL抓取网页数据时所采用的浏览器标志;0033所述COOKIE动态更新策略具体为所述爬虫抓取参数为允许或者拒绝更新从所述当前URL抓取网页数据时的COOKIE,如果到达预设定时时间,则所述爬虫抓取参数设置为允许更新从所述当前URL抓取网页数据时的COOKIE,否则所述爬虫抓取参数设置为拒绝更新从所述当前URL抓取网页数据时的COOKIE;0034所述代理IP切换策略具体为所述爬虫抓取参数为允许或者拒绝更新从所述当前URL抓取网页数据时的代理IP,如果所述异常情况为从所述当前URL抓取网页数据失。
19、败或者达到预设定时时间,则所述爬虫抓取参数设置为允许更新从所述当前URL抓取网页数说明书CN104252530A3/6页7据时的代理IP,否则所述爬虫抓取参数设置为拒绝更新从所述当前URL抓取网页数据时的代理IP。0035本实施例进一步说明了种子陷入死循环处理策略、浏览器标志切换策略、COOKIE动态更新策略和代理IP切换策略,其中,种子陷入死循环处理策略、浏览器标志切换策略和代理IP切换策略根据异常情况调整爬虫抓取参数,而COOKIE动态更新策略则通过定时更新的方式调整爬虫抓取参数。0036具体来说,种子陷入死循环处理策略主要针对解决网站的死循环陷阱。爬虫根据URL抓取到网页数据后,从该网页。
20、数据上分析出新的URL,并再根据新的URL抓取新的网页数据。然而,某些网站会设置死循环陷阱,即根据网页数据所分析出的新的URL是已有的URL,从而导致爬虫抓取陷入死循环中,影响爬虫抓取,而种子陷入死循环处理策略,则是在监测到当前URL陷入死循环的异常情况时,则设置拒绝从所述当前URL抓取网页数据,从而避免陷入死循环。0037具体来说,浏览器标志切换策略用于尽可能模仿用户行为。不同的用户使用的浏览器会不同,为了尽可能地模仿用户行为,需要更改浏览器的类型或者版本。而浏览器的类型或者版本,采用浏览器标志例如USERAGENT进行标识,爬虫在爬取的时候会模拟一个虚拟的浏览器,用USERAGENT进行区。
21、分,USEAGENT的值由浏览器的类型和版本号确定,改变USERAGENT的值相当于切换了浏览器。因此,当检测到从所述当前URL抓取网页数据失败的异常情况或者到达预设定时时间时,更改浏览器标志,以延长爬虫的抓取时间。0038具体来说,COOKIE动态更新策略主要采用定时更新方式实现,即到达预设定时时间时,则更新COOKIE,更新COOKIE相当于与被抓取网页数据的网站建立新的会话,从而能够延长抓取时间。0039具体来说,代理IP切换策略主要针对网站对长时间抓取网页数据的同一IP网络地址,例如IPV4地址,或者IPV6地址,通常采用XXXXXXXXXXXX的IPV4地址进行封锁的情况。对于单机爬。
22、虫抓取,由于单机一般只有一个IP,因此采用代理IP的方式进行爬虫抓取。代理IP切换策略,检测到从所述当前URL抓取网页数据失败的异常情况或者到达预设定时时间时,更换其代理IP,以避免被封锁。0040在其中一个实施例中,所述步骤14中,根据所述规则对所述网页数据进行解析获得解析数据,具体包括0041如果所述当前类型为主页URL,则根据主页URL相应的规则,对所述网页数据进行解析得到解析数据,如果解析数据中包括URL,则将解析数据中的URL作为类型为分页URL的种子保存;0042如果所述当前类型为分页URL,则根据分页URL相应的规则,对所述网页数据进行解析得到解析数据,如果解析数据中包括URL,。
23、则将解析数据中的URL作为类型为详情页URL的种子保存;0043如果所述当前类型为详情页URL,则根据主页URL相应的规则,对所述网页数据进行解析得到解析数据,保存所述解析数据中的网页内容。0044本实施例对URL进行分类,以使得不同类型的URL可以采用不同的规则进行解析,从而得到更为准确的解析结果。0045如图2所示为本发明一种单机爬虫抓取系统的结构模块图,包括说明书CN104252530A4/6页80046种子接收模块201,用于获取至少一个包括URL、网站编号和类型的种子,将所述种子的URL作为当前URL,将所述种子的网站编号作为当前网站编号,将所述种子的类型作为当前类型;0047策略模。
24、块202,用于获取至少一个策略,根据所述策略确定至少一个爬虫抓取参数;0048规则模块203,用于根据所述当前类型获取与所述当前类型对应的规则;0049解析模块204,用于按照所述爬虫抓取参数从所述当前URL抓取网页数据,根据所述规则对所述网页数据进行解析获得解析数据。0050在其中一个实施例中,所述解析模块204中,如果在抓取所述网页数据或者对所述网页数据进行分析中出现异常情况,则保存所述异常情况。0051在其中一个实施例中,所述策略包括种子陷入死循环处理策略、浏览器标志切换策略、COOKIE动态更新策略和/或代理IP切换策略。0052在其中一个实施例中0053所述种子陷入死循环处理策略具体。
25、为所述爬虫抓取参数为允许或者拒绝从所述当前URL抓取网页数据,如果所述异常情况为当前URL陷入死循环,则所述爬虫抓取参数设置为拒绝从所述当前URL抓取网页数据,否则所述爬虫抓取参数设置为允许从所述当前URL抓取网页数据;0054所述浏览器标志切换策略具体为所述爬虫抓取参数为从所述当前URL抓取网页数据时所采用的浏览器标志,如果所述异常情况为从所述当前URL抓取网页数据失败或者达到预设定时时间,则将从所述当前URL抓取网页数据时所采用的浏览器标志更新为另一浏览器标志,否则不更新从所述当前URL抓取网页数据时所采用的浏览器标志;0055所述COOKIE动态更新策略具体为所述爬虫抓取参数为允许或者拒。
26、绝更新从所述当前URL抓取网页数据时的COOKIE,如果到达预设定时时间,则所述爬虫抓取参数设置为允许更新从所述当前URL抓取网页数据时的COOKIE,否则所述爬虫抓取参数设置为拒绝更新从所述当前URL抓取网页数据时的COOKIE;0056所述代理IP切换策略具体为所述爬虫抓取参数为允许或者拒绝更新从所述当前URL抓取网页数据时的代理IP,如果所述异常情况为从所述当前URL抓取网页数据失败或者达到预设定时时间,则所述爬虫抓取参数设置为允许更新从所述当前URL抓取网页数据时的代理IP,否则所述爬虫抓取参数设置为拒绝更新从所述当前URL抓取网页数据时的代理IP。0057在其中一个实施例中,所述解析。
27、模块204中,根据所述规则对所述网页数据进行解析获得解析数据,具体包括0058如果所述当前类型为主页URL,则根据主页URL相应的规则,对所述网页数据进行解析得到解析数据,如果解析数据中包括URL,则将解析数据中的URL作为类型为分页URL的种子保存;0059如果所述当前类型为分页URL,则根据分页URL相应的规则,对所述网页数据进行解析得到解析数据,如果解析数据中包括URL,则将解析数据中的URL作为类型为详情页URL的种子保存;0060如果所述当前类型为详情页URL,则根据主页URL相应的规则,对所述网页数据进说明书CN104252530A5/6页9行解析得到解析数据,保存所述解析数据中的。
28、网页内容。0061如图3所示为本发明一种单机爬虫抓取系统的最佳实施例的结构模块图,包括种子生成模块310、抓取模块320和数据存储模块330。0062种子生成模块310的主要作用是为抓取模块提供种子,种子可以是网站的URL或者商品的SKU。种子可以保存在文本文件或数据库中,抓取模块可以从文本文件或数据库批量获取种子。0063每个种子都必须有一个网站的虚拟编号和类型,网站虚拟编号可以告诉抓取模块调用相应的规则文件解析文档,而类型字段主要是说明该种子属于什么类型,是详情页URL、分页URL还是主页URL。0064抓取模块320是整个单机爬虫的核心,它由规则文件管理子模块321、文档解析子模块322。
29、、策略管理子模块323和异常报告子模块323构成。规则文件管理子模块321的主要作用是管理各类网站的文档解析规则,为文档解析子模块322提供解析规则。文档解析子模块322从规则文件管理子模块321获取各个网站的规则,通过这些规则解析文档,获取用户感兴趣的信息。策略管理子模块323作为抓取模块的优化子模块,可以由一系列的策略管理链构成,通过分析抓取模块的抓取流程,可以用来防止重复爬取、陷入死循环陷阱以及延长抓取时间等。异常报告子模块324用来报告抓取模块320在抓取过程中的各种问题,及时反馈给用户,防止资源浪费。0065抓取模块320获取到种子后,分析异常报告的报告信息,调用相应的策略管理模块并。
30、请求网页。策略管理模块323包括一系列已经定义好的策略,保存在多个策略链中。比如种子陷入死循环的处理策略;浏览器AGENT切换策略;COOKIE动态更新策略;代理IP切换策略等。这些策略可以确保抓取模块在请求网页时更高效。0066在获取到网页信息后,通过种子的虚拟编号调用规则文件管理子模块321,获取相应的规则文件,由文档解析子模块322解析文档。每个种子都有一个类型字段,可以告诉文档解析子模块322要解析什么内容,比如是主页URL,一般会解析出分页URL;如果是分页URL,则需要解析出详细页URL;如果是详情页URL,则可以直接解析出内容了。解析出来的内容会分开保存,如果解析出的还是URL,。
31、则需要把他打上类型标记,单独保存起来,供抓取模块320后续使用,如果解析出的是内容,则可以保存在数据库或文本文件中,直接供用户使用。0067异常报告贯穿整个抓取流程,分为两种,一种属于系统级的错误,一种属于用户级的错误。系统级错误应该报告给抓取模块320,抓取模块一旦接收到这样的错误类型,会调用相应的策略管理子模块323来优化抓取过程。而用户级错误是系统无法处理的,必须反馈给用户,比如解析模块解析内容出错等。0068数据存储模块330用来存储从抓取模块获取的各类数据,这些数据可以保存在数据库或文档中,该模块也可以为抓取模块320提供数据。0069有些数据是需要保存起来给系统再次使用的,而有些数。
32、据是可以直接给用户使用的。0070本发明对单机爬虫的抓取模块的分模块设计,扩展性非常好,并且增加了策略管理子模块和异常报告子模块,极大的优化的整个抓取流程。0071以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并说明书CN104252530A6/6页10不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。说明书CN104252530A101/3页11图1说明书附图CN104252530A112/3页12图2说明书附图CN104252530A123/3页13图3说明书附图CN104252530A13。