CN102063477A - 一种网站数据抓取装置及方法 - Google Patents
一种网站数据抓取装置及方法 Download PDFInfo
- Publication number
- CN102063477A CN102063477A CN 201010600048 CN201010600048A CN102063477A CN 102063477 A CN102063477 A CN 102063477A CN 201010600048 CN201010600048 CN 201010600048 CN 201010600048 A CN201010600048 A CN 201010600048A CN 102063477 A CN102063477 A CN 102063477A
- Authority
- CN
- China
- Prior art keywords
- site name
- address
- website data
- journal file
- website
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种网站数据抓取装置及方法,该方法包括:获取多条爬虫日志,以形成日志文件;以站点名称为基准将日志文件合并到合并日志文件;以IP地址为基准对合并日志文件进行倒排处理,以获取倒排日志文件;对倒排日志文件中每一IP地址下的站点名称进行应用策略计算,以获取多个以优先级别排列的待抓取站点名称以及对应的待抓取IP地址,形成待抓取列表。通过上述方式,可更合理并且快速的调度抓取网站数据,使得在有限的资源下尽可能地使搜索引擎所抓取的网站数据能够保持较高的更新水平。
Description
技术领域
本发明涉及网络技术,特别涉及一种网站数据抓取装置及方法。
背景技术
搜索引擎主要利用爬虫对网站的相关内容进行抓取,而每个网站可以通过设置网站访问配置文件来对网站的相关内容进行访问规则设置,以规定爬虫可以访问哪些网站内容。
由于网站内容对于搜索引擎来说是非常重要的,而所有的搜索引擎都必须遵守网站的爬虫抓取协议,来友好的抓取网站的相关内容。搜索引擎对网站访问配置文件的抓取和对普通网页的抓取都存在着相同的技术问题,其具体表现为抓取能力和更新及时性的矛盾:一方面,不管是目标网站的IP流量还是搜索引擎本身的抓取流量都是有限的资源,另一方面,如果网站的网站访问配置文件改变了而搜索引擎没有更新,搜索引擎会根据旧的网站访问配置文件来抓取网站的相关内容,此举则会被指为不遵守爬虫抓取协议而被站长指责。同样,在抓取其他网站数据(例如网站首页)时同样会遇到类似问题。
发明内容
本发明提供了一种网站数据抓取装置及方法,以更合理并且快速的调度抓取网站数据,使得在有限的资源下尽可能地使搜索引擎所抓取的网站数据能够保持较高的更新水平。
具体方案如下:提供一种网站数据抓取方法,包括:a.获取多条爬虫日志,以形成日志文件,其中所述每一爬虫日志包括相互关联的站点名称、IP地址、网站数据以及抓取时间;b.以所述站点名称为基准将所述日志文件合并到合并日志文件中,在所述合并日志文件中,每一所述站点名称下关联有一个或多个在所述爬虫日志中与所述站点名称相关联的IP地址,每一所述站点名称下进一步关联有在所述爬虫日志中与所述站点名称相关联的抓取时间和网站数据;c.以所述IP地址为基准对所述合并日志文件进行倒排处理,以获取倒排日志文件,在所述倒排日志文件中,每一所述IP地址下关联有一个或多个在所述合并日志文件中与所述IP地址相关联的站点名称,每一所述站点名称进一步关联有在所述合并日志文件中与所述站点名称相关联的抓取时间和网站数据;d.对所述倒排日志文件中每一所述IP地址下的站点名称进行应用策略计算,以获取多个以优先级别排列的待抓取站点名称以及对应的待抓取IP地址,形成待抓取列表。
根据本发明之一优选实施例,步骤a进一步包括:分别根据多个待抓取站点名称及对应的待抓取IP地址获取多个网站数据,分别记录所述待抓取站点名称、所述待抓取IP地址、所述网站数据以及抓取时间,以产生多条爬虫日志。
根据本发明之一优选实施例,步骤d进一步包括:接收IP压力控制列表,其中所述IP压力控制列表包括所述待抓取IP地址和所述待抓取IP地址所能承受的预定抓取周期内的最大抓取次数,根据所述IP压力控制列表控制在所述预定抓取周期内所述待抓取IP地址在所述待抓取列表中的出现次数等于或小于所述最大抓取次数。
根据本发明之一优选实施例,应用策略为计算站点权值策略,所述步骤d进一步包括:计算所述倒排日志文件中每一所述IP地址下的站点名称的站点权值,根据所述站点权值获取所述待抓取站点名称。
根据本发明之一优选实施例,应用策略为按最近抓取时间排序策略,所述步骤d进一步包括:判断所述倒排日志文件中每一所述IP地址下的站点名称所对应的最近抓取时间,根据所述最近抓取时间获取所述待抓取站点名称。
根据本发明之一优选实施例,应用策略为通配站点挖掘策略,所述步骤d进一步包括:判断所述倒排日志文件中每一所述IP地址下的站点名称是否存在位于同一主域下的站点名称,且位于同一主域下的站点名称的网站数据是否一致,若判断到存在位于同一主域下的站点名称且网站数据一致时,只将在同一主域下的站点名称中的部分站点名称作为待抓取站点名称。
根据本发明之一优选实施例,步骤d进一步包括:将位于同一主域下的站点名称中的部分站点名称作为待抓取站点名称进行网站数据抓取,并将抓取到的网站数据作为同一主域下的所有站点名称所对应的网站数据。
根据本发明之一优选实施例,步骤a进一步包括分别将所述多条爬虫日志中的所述站点名称发送至域名解析服务器,以从所述域名解析服务器获取对应的补充IP地址,所述步骤b进一步包括所述补充IP地址补充到所述合并日志文件。
根据本发明之一优选实施例,步骤b进一步包括:对所述日志文件以及所述合并日志文件进行切割,以获得多个子集,分别将所述多个子集分派至分布式处理系统的各分布式子系统并以所述站点名称为基准进行并行合并处理,以获取多个子合并日志文件,并以所述站点名称为基准对所述多个子合并日志文件进行合并处理。
根据本发明之一优选实施例,步骤c进一步包括:对所述合并日志文件进行切割,以获得多个子集,分别将所述多个子集分派至分布式处理系统的各分布式子系统并以所述IP地址为基准进行并行倒排处理,以获取多个子倒排日志文件,并以所述IP地址为基准对所述多个子倒排日志文件进行合并处理。
根据本发明之一优选实施例,网站数据为网站访问配置文件。
根据本发明之一优选实施例,网站数据为网站首页。
本发明进一步提供一种网站数据抓取装置,包括:抓取模块,获取多条爬虫日志,以形成日志文件,其中所述每一爬虫日志包括相互关联的站点名称、IP地址、网站数据以及抓取时间;分析模块,所述分析模块包括:合并模块,用于以所述站点名称为基准将所述日志文件合并到合并日志文件中,在所述合并日志文件中,每一所述站点名称下关联有一个或多个在所述爬虫日志中与所述站点名称相关联的IP地址,每一所述站点名称下进一步关联有在所述爬虫日志中与所述站点名称相关联的抓取时间和网站数据;倒排模块,用于以所述IP地址为基准对所述合并日志文件进行倒排处理,以获取倒排日志文件,在所述倒排日志文件中,每一所述IP地址下关联有一个或多个在所述合并日志文件中与所述IP地址相关联的站点名称,每一所述站点名称进一步关联有在所述合并日志文件中与所述站点名称相关联的抓取时间和网站数据;选取模块,用于对所述倒排日志文件中每一所述IP地址下的站点名称进行应用策略计算,以获取多个以优先级别排列的待抓取站点名称以及对应的待抓取IP地址,形成待抓取列表。
根据本发明之一优选实施例,抓取模块进一步包括:爬虫模块,用于分别根据多个待抓取站点名称及对应的待抓取IP地址获取多个网站数据;日志记录模块,用于分别记录所述待抓取站点名称、所述待抓取IP地址、所述网站数据以及抓取时间,以产生多条爬虫日志。
根据本发明之一优选实施例,选取模块进一步接收IP压力控制列表,其中所述IP压力控制列表包括所述待抓取IP地址和所述待抓取IP地址所能承受的预定抓取周期内的最大抓取次数,所述选取模块根据所述IP压力控制列表控制在所述预定抓取周期内所述待抓取IP地址在所述待抓取列表中的出现次数等于或小于所述最大抓取次数。
根据本发明之一优选实施例,应用策略为计算站点权值策略,所述选取模块计算所述倒排日志文件中每一所述IP地址下的站点名称的站点权值,根据所述站点权值获取所述待抓取站点名称。
根据本发明之一优选实施例,应用策略为按最近抓取时间排序策略,所述选取模块判断所述倒排日志文件中每一所述IP地址下的站点名称所对应的最近抓取时间,根据所述最近抓取时间获取所述待抓取站点名称。
根据本发明之一优选实施例,应用策略为通配站点挖掘策略,所述选取模块判断所述倒排日志文件中每一所述IP地址下的站点名称是否存在位于同一主域下的站点名称,且位于同一主域下的站点名称的网站数据是否一致,若判断到存在位于同一主域下的站点名称且网站数据一致时,只将在同一主域下的站点名称中的部分站点名称作为待抓取站点名称。
根据本发明之一优选实施例,抓取模块将位于同一主域下的站点名称中的部分站点名称作为待抓取站点名称进行网站数据抓取,并将抓取到的网站数据作为同一主域下的所有站点名称所对应的网站数据。
根据本发明之一优选实施例,抓取模块分别将所述多条爬虫日志中的所述站点名称发送至域名解析服务器,以从所述域名解析服务器获取对应的补充IP地址,所述合并模块进一步将所述补充IP地址补充到所述合并日志文件。
根据本发明之一优选实施例,合并模块包括分布式处理系统,其中所述分布式处理系统包括多个分布式子系统,所述合并模块进一步对所述日志文件以及所述合并日志文件进行切割,以获得多个子集,分别将所述多个子集分派至所述分布式处理系统的各分布式子系统并以所述站点名称为基准进行并行合并处理,以获取多个子合并日志文件,并以所述站点名称为基准对所述多个子合并日志文件进行合并处理。
根据本发明之一优选实施例,倒排模块包括分布式处理系统,其中所述分布式处理系统包括多个分布式子系统,所述倒排模块进一步对所述合并日志文件进行切割,以获得多个子集,分别将所述多个子集分派至所述分布式处理系统的各分布式子系统并以所述IP地址为基准进行并行倒排处理,以获取多个子倒排日志文件,并以所述IP地址为基准对所述多个子倒排日志文件进行合并处理。
根据本发明之一优选实施例,网站数据为网站访问配置文件。
根据本发明之一优选实施例,网站数据为网站首页。
由以上技术方案可以看出,通过上述方式,可更合理并且快速的调度抓取网站数据,使得在有限的资源下尽可能地使搜索引擎所抓取的网站数据能够保持较高的更新水平。
附图说明
图1是本发明的网站数据抓取装置的示意框图;
图2是本发明的网站数据抓取装置的工作流程图;
图3是根据本发明第一具体实施例的网站数据抓取装置的示意框图;
图4是根据本发明第二具体实施例的网站数据抓取装置的示意框图;
图5是根据本发明第三具体实施例的网站数据抓取装置的示意框图;
图6是根据本发明第三具体实施例的网站数据抓取装置的工作流程图;
图7是根据本发明第四具体实施例的网站数据抓取装置的示意框图;
图8是根据本发明第五具体实施例的网站数据抓取装置中的合并模块的示意框图;
图9是根据本发明第五具体实施例的网站数据抓取装置中的合并模块的工作流程图;
图10是根据本发明第六具体实施例的网站数据抓取装置中的倒排模块的示意框图;
图11是根据本发明第六具体实施例的网站数据抓取装置中的倒排模块的工作流程图;以及
图12是本发明的合并日志文件转换为倒排日志文件的示意框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
首先请参见图1,图1是本发明的网站数据抓取装置的示意框图。如图1所示,本发明的网站数据抓取装置包括抓取模块100和分析模块110,其中,分析模块110包括合并模块111、倒排模块112以及选取模块113。
并请参见图2,图2是本发明的网站数据抓取装置的工作流程图。如图2所示,是本发明的网站数据抓取装置的工作流程包括:
步骤201,获取多条爬虫日志,以形成日志文件。每一爬虫日志包括相互关联的抓取时间、站点名称、IP地址以及网站数据。在本实施例中,网站数据为网站访问配置文件,例如robots.txt文件或sitemap.xml文件。当然,本发明还可以用于抓取其他网站数据,例如网站首页。在下文中,将以robots.txt文件中的robots数据为例对进行详细描述。
具体而言,爬虫日志格式如表1.1所示:
表1.1
2010-10-19 8:00 | www.baidu.com | 61.135.169.125 | User-agent:Baiduspider\nDisallow:/ |
2010-10-17 8:00 | www.baidu.com | 61.135.169.105 | User-agent:Baiduspider\nAllow:/ |
步骤202,以站点名称为基准将日志文件合并到合并日志文件中。在合并日志文件中,每一站点名称下关联有一个或多个在爬虫日志中与该站点名称相关联的IP地址,每一站点名称下进一步关联有与在爬虫日志中与该站点名称相关联的抓取时间和网站数据。优选的,在合并日志文件中,每一站点名称下关联有之前获得的爬虫日志中与该站点名称相关联的所有IP地址、抓取时间以及robots数据。具体而言,合并日志文件格式如表1.2所示:
表1.2
步骤203,以IP地址为基准对合并日志文件进行倒排处理,以获取倒排日志文件。在倒排日志文件中,每一IP地址下关联有一个或多个在合并日志文件中与该IP地址相关联的站点名称,每一站点名称进一步关联有在合并日志文件中与该站点名称相关联的抓取时间和网站数据。在优选实施中,如果一个站点名称对应多个IP地址,可以采取某些策略从中选取部分IP地址进行倒排,例如随机选取。优选的,每一个IP地址关联有在合并日志文件中与该IP地址关联的所有站点名称及与所有站点名称相关联的抓取时间和robots数据。具体而言,倒排日志文件格式如表1.3所示:
表1.3
步骤204,对倒排日志文件中每一IP地址下的站点名称进行应用策略计算,以获取多个以优先级别排列的待抓取站点名称以及对应的待抓取IP地址,形成待抓取列表。后续,可进一步在下一个抓取周期根据待抓取列表中的待抓取站点名称以及对应的待抓取IP地址从待抓取站点获取网站数据。具体而言,待抓取列表格式如表1.4所示:
表1.4
www.baidu.com | 61.135.169.125 |
www.sina.com | 61.135.169.105 |
值得注意的是,在优选实施例中,在步骤204中的应用策略为计算站点权值策略,选取模块113可计算倒排日志文件中每一IP地址下的站点名称的站点权值,根据站点权值获取待抓取站点名称。具体而言,可计算站点名称的Pagerank,以Pagerank值作为权值参考来定义站点名称的抓取优先级别,进而获取待抓取站点名称。比方,站点权值越高,其抓取优先级别就越高。选取模块113会选择抓取优先级别最高的预定数量的站点名称作为待抓取站点名称。另外,站点名称的流量也可以作为抓取优先级别的参考。
另外,在其他实施例中,在步骤204中的应用策略可为按最近抓取时间排序策略,选取模块113可判断倒排日志文件中每一IP地址下的站点名称所对应的最近抓取时间,根据最近抓取时间获取待抓取站点名称。如当判断到站点名称1的抓取时间较早,站点名称2的抓取时间较近,则可设置站点名称1的抓取优先级别高于站点名称2的抓取优先级别,从而优先将较早抓取过网站数据的站点名称1作为待抓取站点名称。
并且,在其他实施例中,在步骤204中的应用策略可为通配站点挖掘策略,选取模块113可判断倒排日志文件中每一IP地址下的站点名称是否存在位于同一主域下的站点名称,且位于同一主域下的站点名称的网站数据是否一致,在判断到存在位于同一主域下的站点名称且网站数据一致时,只将在同一主域(举例而言,www.baidu.com和tieba.baidu.com都属于baidu.com主域)下的站点名称中的部分站点名称作为待抓取站点名称。另外,进一步地,在抓取模块100将位于同一主域下的站点名称中的部分站点名称作为待抓取站点名称进行网站数据抓取后,将抓取到的网站数据作为同一主域下的所有站点名称所对应的网站数据。通配站点挖掘策略对于泛域站点的网站数据更新很关键,可有效提高抓取效率。
一般而言,以上所介绍的计算站点权值策略、按最近抓取时间排序策略以及通配站点挖掘策略也在本发明中可根据实际需要以任意方式结合使用,利用以上三种优先级别判断机制(或其任意组合),选取模块113可有效选取最需要抓取的站点名称。此外,还可以对倒排日志文件中每一IP地址下的站点名称进行其他应用策略计算,来产生待抓取列表。
其中,以上步骤201由抓取模块100执行,步骤202由合并模块111执行,步骤203由倒排模块112执行,而在步骤204中,由选取模块113执行。此外,由抓取模块100根据待抓取列表从待抓取站点抓取网站数据。
请参见图3,图3是根据本发明第一具体实施例的网站数据抓取装置的示意框图。如图3所示,在本发明的第一具体实施例中,抓取模块100可包括:爬虫模块101、日志记录模块103、存储模块104以及发送控制模块102。
其中,在本发明的第一具体实施例中,爬虫模块101用于分别根据多个待抓取站点名称及对应的待抓取IP地址获取多个网站数据;日志记录模块103用于分别记录该待抓取站点名称、该待抓取IP地址、该网站数据以及抓取时间,以产生多条爬虫日志;爬虫日志被写入存储模块104所存储的日志文件中。此外,选取模块113所产生的待抓取列表也写入存储模块104。发送控制模块102可用于根据待抓取列表中的多个待抓取站点名称及对应的待抓取IP地址控制爬虫模块101获取网站数据。
值得注意的是,在本发明的其他实施例中,抓取模块100也可以设置为其他方式,只要达到可获取多条爬虫日志的技术效果即可,本发明对此并不作具体限定。
另外,在本发明的优选实施例中,存储模块104可为分布式存储系统,因分布式存储系统可采用分段存储方式,并可根据时间点进行段切换,用以存储数据量庞大的多个日志文件。具体来说,日志文件优选采用分段存储,每个日志文件保存一个日志写入周期的爬虫日志,并根据日志写入周期进行切换,比如每天切换到一个新的日志文件。这个日志日入周期是可配置的,周期越短,后续合并的时间周期也同时可以缩短,但后续合并的周期优选大于日志写入周期,以确保所进行合并的原始数据不同。
系统维护一个日志文件列表,所有后续合并都基于这个列表进行。日志文件列表中的日志文件都是只读的,当前正在写入的日志文件不在这个列表中。只有当一个日志文件已经完成写入,该日志文件才会被添加到在这个列表中。
请参见图4,图4是根据本发明第二具体实施例的网站数据抓取装置的示意框图。如图4所示,本发明第二具体实施例与上述第一具体实施例大致相同,主要区别在于,在本发明的第二具体实施例中,进一步在网站数据抓取装置中设置IP压力控制模块120,IP压力控制模块120可用于输出IP压力控制列表至选取模块113,其中,IP压力控制列表包括多个IP地址和该IP地址所能承受的预定抓取周期内的最大抓取次数。具体而言,可参见表1.5,其列出一个IP压力控制列表:
表1.5
61.135.169.125 | 1000 |
61.135.169.105 | 500 |
220.181.7.25 | 1750 |
如表1.5所示,在IP压力控制列表中,每个IP地址都有一个抓取的流量限制,比如对于IP地址61.135.169.125,只能在预定的抓取周期内发起1000次抓取。选取模块113根据IP压力控制列表控制在预定抓取周期内待抓取IP地址在待抓取列表中的出现次数等于或小于对应的最大抓取次数。例如,选取模块113会将待抓取列表中的待抓取IP地址出现最大抓取次数以后的部分删除,避免抓取次数超出待抓取IP地址的流量限制。此外,为了进一步缓解待抓取IP地址压力,选取模块113会将待抓取列表中的同一IP地址的不同站点名称错开存储。具体而言,可参见表1.6所示:
表1.6
www.baidu.com | 61.135.169.125 |
www.sina.com | 61.135.169.105 |
tieba.baidu.com | 61.135.169.125 |
在表1.6中,www.baidu.com和tieba.baidu.com的IP地址均为61.135.169.125,因此在待抓取列表内错开存储,避免连续对同一IP地址进行抓取,缓解了IP压力。
请参见图5,图5是根据本发明第三具体实施例的网站数据抓取装置的示意框图。如图5所示,在本发明的第三具体实施例与上述第一具体实施例的区别在于,在本发明的第三具体实施例中,进一步在网站数据抓取装置中设置域名解析服务器(DNS)130。抓取模块100分别将多条爬虫日志中的站点名称发送至域名解析服务器130,以从域名解析服务器130获取对应的补充IP地址,补充IP地址可首先补充到日志文件,再由合并模块111补充到合并日志文件中。通过以上机制,可保证网站数据抓取装置可及时从域名解析服务器130中获取站点名称对应的最新IP地址。
请进一步参见图6,图6是根据本发明第三具体实施例的网站数据抓取装置的工作流程图。如图6所示,本发明第三具体实施例的网站数据抓取装置的工作流程如下:
步骤301,获取多条爬虫日志,以形成日志文件,其中每一爬虫日志包括相互关联的站点名称、IP地址、网站数据以及抓取时间。
步骤302,分别将多条爬虫日志中的站点名称发送至域名解析服务器,以从域名解析服务器获取对应的补充IP地址,并添加到日志文件中。
步骤303,以站点名称为基准将日志文件合并到合并日志文件中。在合并日志文件中,每一站点名称下关联有一个或多个在爬虫日志中与该站点名称相关联的IP地址,每一站点名称下进一步关联有与在爬虫日志中与该站点名称相关联的抓取时间和网站数据。
步骤304,以IP地址为基准对合并日志文件进行倒排处理,以获取倒排日志文件。在倒排日志文件中,每一IP地址下关联有一个或多个在合并日志文件中与该IP地址相关联的站点名称,每一站点名称进一步关联有在合并日志文件中与该站点名称相关联的抓取时间和网站数据。在优选实施中,如果一个站点名称对应多个IP地址,可以采取某些策略从中选取部分IP地址进行倒排,例如随机选取。
步骤305,对倒排日志文件中每一IP地址下的站点名称进行应用策略计算,以获取多个以优先级别排列的待抓取站点名称以及对应的待抓取IP地址,形成待抓取列表。后续,可进一步在下一个抓取周期根据待抓取列表中的待抓取站点名称以及对应的待抓取IP地址从待抓取站点获取网站数据。
其中,步骤301由抓取模块100执行,步骤302由抓取模块100发送至域名解析服务器130执行,步骤303由合并模块111执行,步骤304由倒排模块112执行,步骤305中,由选取模块113执行。此外,选取模块113所产生的待抓取列表存储至存储模块104,由发送控制模块102根据待抓取列表以一定速率发送待抓取站点名称及对应的待抓取IP地址至爬虫模块101,并由爬虫模块101从待抓取站点获取网站数据。
请参见图7,图7是根据本发明第四具体实施例的网站数据抓取装置的示意框图。如图7所示,本发明的第四具体实施例与上述的第一具体实施例的区别在于,在本发明的第四具体实施例中,进一步在网站数据抓取装置中设置网站数据存储模块140,网站数据存储模块140可从爬虫模块101中获取网站数据,例如网站访问配置文件,并且将网站访问配置文件提供至搜索引擎的网页抓取模块,以使得网页抓取模块可根据网站访问配置文件选择性地抓取对应的网站内容。
请参见图8,图8是根据本发明第五具体实施例的网站数据抓取装置中的合并模块111的示意框图。如图8所示,合并模块111为分布式处理系统,其中分布式处理系统包括多个分布式子系统1111,切割模块(未图示)对日志文件以及合并日志文件进行切割,以获得多个子集151、152,分别将多个子集151、152分派至多个分布式子系统1111,并分别以站点名称为基准进行并行合并处理,以获取多个子合并日志文件,并以站点名称为基准利用另一分布式子系统1111对多个子合并日志文件进行合并处理,以获取合并日志文件160。
请进一步参见图9,图9是根据本发明第五具体实施例的网站数据抓取装置中的合并模块111的工作流程图。如图9所示,本发明第五具体实施例的网站数据抓取装置中的合并模块111的工作流程如下:
步骤401,对日志文件以及合并日志文件进行切割,以获得多个子集。
步骤402,分别将多个子集分派至分布式处理系统的各子系统并以站点名称为基准进行并行合并处理,以获取多个子合并日志文件。
步骤403,以站点名称为基准对多个子合并日志文件进行合并处理,以获取合并日志文件。
由于合并模块111包括多个分布式子系统,在步骤402中,多个分布式子系统1111可并行进行合并处理,因此可极大地加快处理速度,在日志文件以及合并日志文件的数据量非常大时,可明显地提高处理效率。
请参见图10,图10是根据本发明第六具体实施例的网站数据抓取装置中的倒排模块112的示意框图。如图10所示,倒排模块112为分布式处理系统,其中分布式处理系统包括多个分布式子系统1121,切割模块(未图示)对合并日志文件160进行切割,以获得多个子合并日志文件161,分别将多个子合并日志文件161分派至分布式子系统1121,并以IP地址为基准进行并行倒排处理,以获取多个子倒排日志文件,并以IP地址为基准利用另一分布式子系统1121对多个子倒排日志文件进行合并处理,以获取倒排日志文件170。
请继续参见图11,图11是根据本发明第六具体实施例的网站数据抓取装置中的倒排模块112的工作流程图。如图11所示,本发明第六具体实施例的网站数据抓取装置中的倒排模块112的工作流程如下:
步骤501,对合并日志文件进行切割,以获得多个子集。
步骤502,分别将多个子集分派至分布式处理系统的各子系统并以IP地址为基准进行并行倒排处理,以获取多个子倒排日志文件。
步骤503,以IP地址为基准对多个子倒排日志文件进行合并处理,以获取倒排日志文件。
由于倒排模块112包括多个分布式子系统1121,在步骤502中,多个分布式子系统1121可并行进行倒排处理,因此可极大地加快处理速度,在合并日志文件160的数据量非常大时,可明显地提高处理效率。
最后请参见图12,图12是本发明的合并日志文件160转换为倒排日志文件170的示意框图。在图12中,为了便于说明,只选采3个站点名称加以说明:站点名称1、站点名称2、站点名称3,并选取4个IP地址:IP地址1、IP地址2、IP地址3、IP地址4。
其中,合并日志文件160包括多条由站点名称、IP地址、抓取时间以及网站数据组成的合并日志记录601,602,603,并且,每一合并日志记录以站点为基准,相互关联,如在合并日志记录601中,记录了站点名称1下关联的所有IP地址(IP地址1、IP地址2、IP地址3),并且记录了站点名称1下关联的不同的抓取时间以及对应的网站数据。
而倒排日志文件170则包括多条由IP地址、站点名称、抓取时间以及网站数据组成的倒排日志记录604,605,606,607,每一倒排日志记录以IP地址为基准,相互关联,如在倒排日志记录604中,记录了IP地址1下关联的所有站点名称(站点名称1、站点名称2),并且对应每一站点名称进一步关联了在不同的抓取时间以及对应的网站数据。
由于倒排日志文件170以IP地址为基准,因此在日志容量非常大的情况下,可利用IP地址快速查找该IP地址所对应的站点名称,并对站点名称所对应的抓取时间和网站数据进行策略分析,即可快速得出对特定站点名称的优选抓取级别。
值得注意的是,在本发明的优选实施例中,网站数据可以是网站访问配置文件,例如robots.txt文件或sitemap.xml文件,也可以是例如网站首页的其他网站数据。
其中,robots.txt是搜索引擎中访问站点的时候要查看的第一个文件。robots.txt用于限制爬虫抓取的范围,亦即告诉爬虫在站点服务器上什么文件是可以被抓取的。当爬虫访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,爬虫就会按照robots.txt中的内容来确定抓取的范围;如果该文件不存在,爬虫将能够抓取站点上所有未被口令保护的页面。而sitemap.xml文件用于收录网页列表,用于引导爬虫进行抓取,可指引搜索引擎快速、全面的抓取网站上内容。
通过上述所提供的技术方案,本发明提供了一种网站数据抓取装置及方法,其可更合理并且快速的调度抓取网站数据,使得在有限的资源下尽可能地使搜索引擎所抓取的网站数据能够保持较高的更新水平。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (24)
1.一种网站数据抓取方法,其特征在于,包括:
a.获取多条爬虫日志,以形成日志文件,其中所述每一爬虫日志包括相互关联的站点名称、IP地址、网站数据以及抓取时间;
b.以所述站点名称为基准将所述日志文件合并到合并日志文件中,在所述合并日志文件中,每一所述站点名称下关联有一个或多个在所述爬虫日志中与所述站点名称相关联的IP地址,每一所述站点名称下进一步关联有在所述爬虫日志中与所述站点名称相关联的抓取时间和网站数据;
c.以所述IP地址为基准对所述合并日志文件进行倒排处理,以获取倒排日志文件,在所述倒排日志文件中,每一所述IP地址下关联有一个或多个在所述合并日志文件中与所述IP地址相关联的站点名称,每一所述站点名称进一步关联有在所述合并日志文件中与所述站点名称相关联的抓取时间和网站数据;
d.对所述倒排日志文件中每一所述IP地址下的站点名称进行应用策略计算,以获取多个以优先级别排列的待抓取站点名称以及对应的待抓取IP地址,形成待抓取列表。
2.根据权利要求1所述的网站数据抓取方法,其特征在于,所述步骤a进一步包括:分别根据多个待抓取站点名称及对应的待抓取IP地址获取多个网站数据,分别记录所述待抓取站点名称、所述待抓取IP地址、所述网站数据以及抓取时间,以产生多条爬虫日志。
3.根据权利要求1所述的网站数据抓取方法,其特征在于,所述步骤d进一步包括:接收IP压力控制列表,其中所述IP压力控制列表包括所述待抓取IP地址和所述待抓取IP地址所能承受的预定抓取周期内的最大抓取次数,根据所述IP压力控制列表控制在所述预定抓取周期内所述待抓取IP地址在所述待抓取列表中的出现次数等于或小于所述最大抓取次数。
4.根据权利要求1所述的网站数据抓取方法,其特征在于,所述应用策略为计算站点权值策略,所述步骤d进一步包括:计算所述倒排日志文件中每一所述IP地址下的站点名称的站点权值,根据所述站点权值获取所述待抓取站点名称。
5.根据权利要求1所述的网站数据抓取方法,其特征在于,所述应用策略为按最近抓取时间排序策略,所述步骤d进一步包括:判断所述倒排日志文件中每一所述IP地址下的站点名称所对应的最近抓取时间,根据所述最近抓取时间获取所述待抓取站点名称。
6.根据权利要求1所述的网站数据抓取方法,其特征在于,所述应用策略为通配站点挖掘策略,所述步骤d进一步包括:判断所述倒排日志文件中每一所述IP地址下的站点名称是否存在位于同一主域下的站点名称,且位于同一主域下的站点名称的网站数据是否一致,若判断到存在位于同一主域下的站点名称且网站数据一致时,只将在同一主域下的站点名称中的部分站点名称作为待抓取站点名称。
7.根据权利要求6所述的网站数据抓取方法,其特征在于,所述步骤d进一步包括:将位于同一主域下的站点名称中的部分站点名称作为待抓取站点名称进行网站数据抓取,并将抓取到的网站数据作为同一主域下的所有站点名称所对应的网站数据。
8.根据权利要求1所述的网站数据抓取方法,其特征在于,所述步骤a进一步包括分别将所述多条爬虫日志中的所述站点名称发送至域名解析服务器,以从所述域名解析服务器获取对应的补充IP地址,所述步骤b进一步包括所述补充IP地址补充到所述合并日志文件。
9.根据权利要求1所述的网站数据抓取方法,其特征在于,所述步骤b进一步包括:对所述日志文件以及所述合并日志文件进行切割,以获得多个子集,分别将所述多个子集分派至分布式处理系统的各分布式子系统并以所述站点名称为基准进行并行合并处理,以获取多个子合并日志文件,并以所述站点名称为基准对所述多个子合并日志文件进行合并处理。
10.根据权利要求1所述的网站数据抓取方法,其特征在于,所述步骤c进一步包括:对所述合并日志文件进行切割,以获得多个子集,分别将所述多个子集分派至分布式处理系统的各分布式子系统并以所述IP地址为基准进行并行倒排处理,以获取多个子倒排日志文件,并以所述IP地址为基准对所述多个子倒排日志文件进行合并处理。
11.根据权利要求1所述的网站数据抓取方法,其特征在于,所述网站数据为网站访问配置文件。
12.根据权利要求1所述的网站数据抓取方法,其特征在于,所述网站数据为网站首页。
13.一种网站数据抓取装置,其特征在于,包括:
抓取模块,获取多条爬虫日志,以形成日志文件,其中所述每一爬虫日志包括相互关联的站点名称、IP地址、网站数据以及抓取时间;
分析模块,所述分析模块包括:
合并模块,用于以所述站点名称为基准将所述日志文件合并到合并日志文件中,在所述合并日志文件中,每一所述站点名称下关联有一个或多个在所述爬虫日志中与所述站点名称相关联的IP地址,每一所述站点名称下进一步关联有在所述爬虫日志中与所述站点名称相关联的抓取时间和网站数据;
倒排模块,用于以所述IP地址为基准对所述合并日志文件进行倒排处理,以获取倒排日志文件,在所述倒排日志文件中,每一所述IP地址下关联有一个或多个在所述合并日志文件中与所述IP地址相关联的站点名称,每一所述站点名称进一步关联有在所述合并日志文件中与所述站点名称相关联的抓取时间和网站数据;
选取模块,用于对所述倒排日志文件中每一所述IP地址下的站点名称进行应用策略计算,以获取多个以优先级别排列的待抓取站点名称以及对应的待抓取IP地址,形成待抓取列表。
14.根据权利要求13所述的网站数据抓取装置,其特征在于,所述抓取模块进一步包括:
爬虫模块,用于分别根据多个待抓取站点名称及对应的待抓取IP地址获取多个网站数据;
日志记录模块,用于分别记录所述待抓取站点名称、所述待抓取IP地址、所述网站数据以及抓取时间,以产生多条爬虫日志。
15.根据权利要求13所述的网站数据抓取装置,其特征在于,所述选取模块进一步接收IP压力控制列表,其中所述IP压力控制列表包括所述待抓取IP地址和所述待抓取IP地址所能承受的预定抓取周期内的最大抓取次数,所述选取模块根据所述IP压力控制列表控制在所述预定抓取周期内所述待抓取IP地址在所述待抓取列表中的出现次数等于或小于所述最大抓取次数。
16.根据权利要求13所述的网站数据抓取装置,其特征在于,所述应用策略为计算站点权值策略,所述选取模块计算所述倒排日志文件中每一所述IP地址下的站点名称的站点权值,根据所述站点权值获取所述待抓取站点名称。
17.根据权利要求13所述的网站数据抓取装置,其特征在于,所述应用策略为按最近抓取时间排序策略,所述选取模块判断所述倒排日志文件中每一所述IP地址下的站点名称所对应的最近抓取时间,根据所述最近抓取时间获取所述待抓取站点名称。
18.根据权利要求13所述的网站数据抓取装置,其特征在于,所述应用策略为通配站点挖掘策略,所述选取模块判断所述倒排日志文件中每一所述IP地址下的站点名称是否存在位于同一主域下的站点名称,且位于同一主域下的站点名称的网站数据是否一致,若判断到存在位于同一主域下的站点名称且网站数据一致时,只将在同一主域下的站点名称中的部分站点名称作为待抓取站点名称。
19.根据权利要求18所述的网站数据抓取装置,其特征在于,所述抓取模块将位于同一主域下的站点名称中的部分站点名称作为待抓取站点名称进行网站数据抓取,并将抓取到的网站数据作为同一主域下的所有站点名称所对应的网站数据。
20.根据权利要求1所述的网站数据抓取装置,其特征在于,所述抓取模块分别将所述多条爬虫日志中的所述站点名称发送至域名解析服务器,以从所述域名解析服务器获取对应的补充IP地址,所述合并模块进一步将所述补充IP地址补充到所述合并日志文件。
21.根据权利要求13所述的网站数据抓取装置,其特征在于,所述合并模块包括分布式处理系统,其中所述分布式处理系统包括多个分布式子系统,所述合并模块进一步对所述日志文件以及所述合并日志文件进行切割,以获得多个子集,分别将所述多个子集分派至所述分布式处理系统的各分布式子系统并以所述站点名称为基准进行并行合并处理,以获取多个子合并日志文件,并以所述站点名称为基准对所述多个子合并日志文件进行合并处理。
22.根据权利要求13所述的网站数据抓取装置,其特征在于,所述倒排模块包括分布式处理系统,其中所述分布式处理系统包括多个分布式子系统,所述倒排模块进一步对所述合并日志文件进行切割,以获得多个子集,分别将所述多个子集分派至所述分布式处理系统的各分布式子系统并以所述IP地址为基准进行并行倒排处理,以获取多个子倒排日志文件,并以所述IP地址为基准对所述多个子倒排日志文件进行合并处理。
23.根据权利要求13所述的网站数据抓取装置,其特征在于,所述网站数据为网站访问配置文件。
24.根据权利要求13所述的网站数据抓取装置,其特征在于,所述网站数据为网站首页。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106000488A CN102063477B (zh) | 2010-12-13 | 2010-12-13 | 一种网站数据抓取装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106000488A CN102063477B (zh) | 2010-12-13 | 2010-12-13 | 一种网站数据抓取装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102063477A true CN102063477A (zh) | 2011-05-18 |
CN102063477B CN102063477B (zh) | 2012-11-28 |
Family
ID=43998753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106000488A Active CN102063477B (zh) | 2010-12-13 | 2010-12-13 | 一种网站数据抓取装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063477B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020313A (zh) * | 2013-01-08 | 2013-04-03 | 北京航空航天大学 | 一种基于探测网页更新周期的抓取方法 |
CN103198007A (zh) * | 2012-01-06 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 多进程的日志输出方法及系统 |
CN103246709A (zh) * | 2013-04-19 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种网页数据抓取的方法 |
CN103389983A (zh) * | 2012-05-08 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 一种用于网络爬虫系统的网页内容抓取方法及装置 |
CN103605764A (zh) * | 2013-11-26 | 2014-02-26 | Tcl集团股份有限公司 | 一种网络爬虫系统及网络爬虫多任务执行和调度方法 |
CN103685598A (zh) * | 2013-12-06 | 2014-03-26 | 国家计算机网络与信息安全管理中心 | 在IPv6网络中发现活跃IP地址的方法及装置 |
CN103929321A (zh) * | 2013-01-15 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种日志处理方法和装置 |
CN104615716A (zh) * | 2015-02-05 | 2015-05-13 | 北京航空航天大学 | 基于优先序列的分布式社交网络信息采集方法及系统 |
CN103544278B (zh) * | 2013-10-22 | 2017-02-01 | 北京奇虎科技有限公司 | 确定网站抓取流量配额的方法及设备 |
CN107451261A (zh) * | 2017-07-31 | 2017-12-08 | 广州探迹科技有限公司 | 一种基于对象存储的爬虫网络路径追踪方法 |
CN107832136A (zh) * | 2017-11-28 | 2018-03-23 | 广州启生信息技术有限公司 | 一种网络爬虫程序的管理方法及装置 |
CN108416046A (zh) * | 2018-03-15 | 2018-08-17 | 广州优视网络科技有限公司 | 序列爬虫边界检测方法、装置和服务器 |
CN109766501A (zh) * | 2019-01-14 | 2019-05-17 | 北京搜狗科技发展有限公司 | 爬虫协议管理方法及装置、爬虫系统 |
CN111783016A (zh) * | 2020-07-03 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 一种网站分类方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1975725A (zh) * | 2006-12-12 | 2007-06-06 | 华为技术有限公司 | 一种管理日志的方法及系统 |
CN101329687A (zh) * | 2008-07-31 | 2008-12-24 | 清华大学 | 一种新闻网页定位方法 |
US7546370B1 (en) * | 2004-08-18 | 2009-06-09 | Google Inc. | Search engine with multiple crawlers sharing cookies |
-
2010
- 2010-12-13 CN CN2010106000488A patent/CN102063477B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546370B1 (en) * | 2004-08-18 | 2009-06-09 | Google Inc. | Search engine with multiple crawlers sharing cookies |
CN1975725A (zh) * | 2006-12-12 | 2007-06-06 | 华为技术有限公司 | 一种管理日志的方法及系统 |
CN101329687A (zh) * | 2008-07-31 | 2008-12-24 | 清华大学 | 一种新闻网页定位方法 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103198007A (zh) * | 2012-01-06 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 多进程的日志输出方法及系统 |
CN103389983A (zh) * | 2012-05-08 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 一种用于网络爬虫系统的网页内容抓取方法及装置 |
CN103020313A (zh) * | 2013-01-08 | 2013-04-03 | 北京航空航天大学 | 一种基于探测网页更新周期的抓取方法 |
CN103929321A (zh) * | 2013-01-15 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种日志处理方法和装置 |
CN103246709A (zh) * | 2013-04-19 | 2013-08-14 | 浪潮集团山东通用软件有限公司 | 一种网页数据抓取的方法 |
CN103544278B (zh) * | 2013-10-22 | 2017-02-01 | 北京奇虎科技有限公司 | 确定网站抓取流量配额的方法及设备 |
CN103605764A (zh) * | 2013-11-26 | 2014-02-26 | Tcl集团股份有限公司 | 一种网络爬虫系统及网络爬虫多任务执行和调度方法 |
CN103605764B (zh) * | 2013-11-26 | 2017-10-24 | Tcl集团股份有限公司 | 一种网络爬虫系统及网络爬虫多任务执行和调度方法 |
CN103685598A (zh) * | 2013-12-06 | 2014-03-26 | 国家计算机网络与信息安全管理中心 | 在IPv6网络中发现活跃IP地址的方法及装置 |
CN104615716A (zh) * | 2015-02-05 | 2015-05-13 | 北京航空航天大学 | 基于优先序列的分布式社交网络信息采集方法及系统 |
CN104615716B (zh) * | 2015-02-05 | 2017-12-01 | 北京航空航天大学 | 基于优先序列的分布式社交网络信息采集方法及系统 |
CN107451261A (zh) * | 2017-07-31 | 2017-12-08 | 广州探迹科技有限公司 | 一种基于对象存储的爬虫网络路径追踪方法 |
CN107832136A (zh) * | 2017-11-28 | 2018-03-23 | 广州启生信息技术有限公司 | 一种网络爬虫程序的管理方法及装置 |
CN108416046A (zh) * | 2018-03-15 | 2018-08-17 | 广州优视网络科技有限公司 | 序列爬虫边界检测方法、装置和服务器 |
CN108416046B (zh) * | 2018-03-15 | 2020-05-26 | 阿里巴巴(中国)有限公司 | 序列爬虫边界检测方法、装置和服务器 |
CN109766501A (zh) * | 2019-01-14 | 2019-05-17 | 北京搜狗科技发展有限公司 | 爬虫协议管理方法及装置、爬虫系统 |
CN111783016A (zh) * | 2020-07-03 | 2020-10-16 | 支付宝(杭州)信息技术有限公司 | 一种网站分类方法、装置及设备 |
CN111783016B (zh) * | 2020-07-03 | 2021-05-04 | 支付宝(杭州)信息技术有限公司 | 一种网站分类方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102063477B (zh) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063477B (zh) | 一种网站数据抓取装置及方法 | |
CN101488135B (zh) | 延后个性化网页的设计和获取方法 | |
US9940391B2 (en) | System, method and computer readable medium for web crawling | |
CN101583072B (zh) | 一种用于实现Mobile Internet的中间件产品及其方法 | |
CN104679778A (zh) | 一种搜索结果的生成方法及装置 | |
CN105956183A (zh) | 一种分布式数据库中海量小文件的多级优化存储方法及系统 | |
CN1601532A (zh) | 根据结构相关信息排序文档的改进的系统和方法 | |
CN102752288A (zh) | 网络访问行为识别方法和装置 | |
CN103853743A (zh) | 一种分布式系统及其日志查询方法 | |
CN1949715A (zh) | 一种限制浏览器访问网络地址的方法 | |
JP2008305225A (ja) | 制御計算機、計算機システム及びアクセス制御方法 | |
CN105677904B (zh) | 基于分布式文件系统的小文件存储方法及装置 | |
JP4839585B2 (ja) | 資源情報収集配信方法およびシステム | |
CN102307219A (zh) | 一种文件存取系统及文件上传方法和文件下载方法 | |
CN110874429A (zh) | 面向海量数据采集的分布式网络爬虫性能优化方法 | |
CN105589943A (zh) | 搜索结果页面的图片适应性处理的方法、装置和服务器 | |
CN110866166A (zh) | 面向海量数据采集的分布式网络爬虫性能优化系统 | |
CN102214172A (zh) | 一种高速缓存的方法及设备 | |
CN107103063A (zh) | 基于大数据的科技信息资源检索查询系统 | |
CN102306184B (zh) | 获得链接压缩地址信息及压缩网页的方法、装置和设备 | |
JP2010537324A5 (zh) | ||
CN102541924B (zh) | 一种检索信息的缓存方法和搜索引擎系统 | |
Hurst et al. | Social streams blog crawler | |
KR20120071827A (ko) | 악성코드 경유-유포지 탐지를 위한 씨드 정보 수집 장치 및 수집 방법 | |
CN202075736U (zh) | 一种搜索引擎抓取服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |