CN105320740B - 微信文章以及公众号的获取方法及获取系统 - Google Patents
微信文章以及公众号的获取方法及获取系统 Download PDFInfo
- Publication number
- CN105320740B CN105320740B CN201510609672.7A CN201510609672A CN105320740B CN 105320740 B CN105320740 B CN 105320740B CN 201510609672 A CN201510609672 A CN 201510609672A CN 105320740 B CN105320740 B CN 105320740B
- Authority
- CN
- China
- Prior art keywords
- url
- page
- keyword
- search
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 241000270322 Lepidosauria Species 0.000 claims abstract description 26
- 239000004744 fabric Substances 0.000 claims abstract description 13
- 238000001914 filtration Methods 0.000 claims abstract description 8
- 230000009193 crawling Effects 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 11
- 238000002224 dissection Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种微信文章以及公众号的获取方法以及获取系统,本发明在爬虫正常爬取的基础上,接入第三方平台来识别验证码,解决了搜狗搜索时出现的验证码问题,保证爬虫稳定地爬取;另外爬虫利用文章ID以及公众微信号做布隆过滤,保证了微信爬虫不会由于搜狗搜索平台URL的变化而无法正常运行,同时通过增量列表记录了上次爬虫更新的状态,保证了爬虫的增量式爬取,提高了爬虫的效率,本发明能够高效、稳定、全面地爬取微信公众号和文章,具有很好的可用性。
Description
技术领域
本发明属于数据获取技术领域,更具体涉及一种微信文章以及公众号的获取方法以及获取系统。
背景技术
腾讯公布的2015年微信业绩报告显示,微信每月活跃用户已超过5亿,用户覆盖200多个国家、超过20种语言。此外,微信公众号是微信的主要业务之一,2013年11月微信公众号的数量超过200万,2014年7月微信公众号的数量已达到580万,2014年12月微信公众号总数超过800万个,目前,微信公众号的数量已经超过1千万。微信公众号主要通过推送文章来增加粉丝量,从而广告主可以在关注度比较高的公众号投放广告,经统计,接近80%微信用户关注了微信公众号。大多数用户关注企业和媒体的微信公众号,比例高达73.4%。41.1%的用户关注公众号目的是为了获取资讯,36.9%的用户是为了方便生活,13.7%的用户是为了学习知识。如何提取和有效地利用微信数据,既是机遇又是挑战。
微信数据获取是微信数据分析的基础,其中微信数据主要包括微信公众号信息以及微信文章信息。微信数据获取主要通过网络爬虫的形式爬取。网络爬虫又称为网络机器人、网络蜘蛛,是一种按照某些策略,自动抓取网络资源的脚本或者程序。
搜狗微信搜索是搜狗在2014年6月9日推出的针对微信公众平台的搜索引擎,微信搜狗搜索支持根据关键字搜索微信公众号以及微信公众号推送的文章。搜狗搜索正式接入微信公众号数据,首次实现公众号的“外网”展示。
综上,微信作为社交平台,扩大了社交圈,微信公众号是微信的主要业务之一,公众号数据量庞大,存在很大的潜在的研究价值。同时搜狗搜索接入微信数据,也为获取微信数据提供了可能。然而,在微信数据获取中,现在还没有一种高效、稳定、全面地获取微信文章以及公众号的技术方案。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何高效、稳定、全面地获取微信文章以及公众号。
(二)技术方案
为了解决上述技术问题,本发明提供一种微信文章以及公众号的获取方法,所述方法包括以下步骤:
S1、获取微信检索所需关键字,对于每一个关键字,为其构建1个或多个搜索URL,并将构建的所述搜索URL放入请求队列;
S2、启动爬虫组件,针对一关键字的每一个搜索URL以及搜索URL页面上未爬取的URL进行爬取:
S21、判断当前爬取页面是否是验证码页面,若当前爬取页面是验证码页面,则执行步骤S22,否则执行步骤S23;
S22、获取当前页面的验证码,并上传至第三方平台,由所述第三方平台进行验证码识别,之后模拟验证码提交表单提交验证码,之后执行所述步骤S21;
S23、判断当前爬取页面的URL是否为当前关键字对应的多个所述搜索URL中的一个,若是执行步骤S24,否则执行步骤S30;
S24、利用布隆过滤方法筛选出当前爬取页面中未爬取的微信文章的URL以及对应的微信公众号的URL,并放入所述请求队列;对于微信文章的URL以及微信公众号的URL中的每一个URL,执行步骤S21;
S25、判断当前爬取页面是否为当前关键字的第一个搜索URL对应的页面,若是执行步骤S26,否则执行步骤S27;
S26、获取当前爬取页面的第一个文章的ID号,并更新入增量列表,之后执行步骤S27;其中所述增量列表用于存储每一个关键字的第一个页面的第一个文章的ID号;
S27、判断当前爬取页面是否为当前关键字的最后一个搜索URL对应的页面,若是,则当前关键字的爬取操作完成,执行步骤S29;否则执行步骤S28;
S28、判断当前爬取页面的下一个搜索URL对应的页面是否已经爬过,若是,执行步骤S29;否则,将当前爬取页面的下一个搜索URL放入所述请求队列中,并执行步骤S21;
S29、判断当前关键字是否是最后一个关键字,若是,爬虫结束;否则,执行步骤S21进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作。
S30、从当前爬取页面中解析得到微信公众号或者微信文章,并将析得到的微信公众号或者微信文章进行处理,之后进行存储。
优选地,所述方法还包括增量列表加载的步骤;以及所述方法还包括布隆过滤器初始化的步骤。
优选地,所述步骤S1中将第一个关键字的搜索URL放入所述请求队列,并且在步骤S27中,当前关键字的爬取操作完成后再将选一个关键字的搜索URL放入所述请求队列。
优选地,所述步骤S24中,在布隆过滤方法筛选出当前爬取页面中未爬取的微信文章的URL以及微信公众号的URL之前,所述方法还包括以下步骤:
将当前爬取页面的URL以及当前关键字存储到断点日志中。
优选地,所述步骤S26中,在获取当前爬取页面的第一个文章的ID号之前,所述方法还包括以下步骤:
将增量列表下载到本地文件中,从下载的增量列表中获取上一次存储的关键字以及对应的第一个搜索URL页面上第一个文章的ID号,并存入内存中。
一种微信文章以及公众号获取系统,所述系统包括:
搜索URL构建模块,其用于获取微信检索所需关键字,对于每一个关键字,为其构建多个搜索URL,并将构建的所述搜索URL放入请求队列;
页面解析模块,针对一关键字的每一个搜索URL以及搜索URL页面上未爬取的URL进行爬取,所述页面解析模块用于判断当前爬取页面的URL是否为当前关键字对应的多个所述搜索URL中的一个,若是则利用布隆过滤器筛选出当前爬取页面中未爬取的微信文章的URL以及微信公众号的URL,并放入所述请求队列,之后进行爬取;若否,则解析当前爬取页面得到微信公众号或者微信文章;所述页面解析模块还用于判断当前爬取页面是否为当前关键字的第一个搜索URL对应的页面,若是获取当前爬取页面的第一个文章的ID号,并更新入增量列表,若否,所述页面解析模块还用于判断当前爬取页面是否为当前关键字的最后一个搜索URL对应的页面,若是,则当前关键字的爬取操作完成,进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作,若否,所述页面解析模块还用于判断当前爬取页面的下一个搜索URL对应的页面是否已经爬过,若是,则当前关键字的爬取操作完成,进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作;否则,将当前爬取页面的下一个搜索URL放入所述请求队列中,进行爬取操作;
解析处理模块,用于对所述页面解析模块析得到的微信公众号或者微信文章进行处理;
数据库模块,用于将所述解析处理模块处理后的数据进行存储;
打码模块,用于判断当前爬取页面是否是验证码页面,若当前爬取页面是验证码页面,则获取当前页面的验证码,并上传至第三方平台,由所述第三方平台进行验证码识别,之后模拟验证码提交表单提交验证码。
优选地,所述系统还包括初始化模块,用于初始化布隆过滤器、搜索URL构建模块、页面解析模块、解析处理模块、数据库模块以及打码模块。
优选地,所述搜索URL构建模块用于先构建第一个关键字的搜索URL并放入所述请求队列,在一个关键字的爬取操作完成后再构建下一个关键字的搜索URL并放入所述请求队列。
优选地,所述系统还包括日志模块,其用于存储当前爬取页面的URL以及当前关键字。
优选地,所述系统还包括增量文件,用于存储每一个关键字的第一个页面的第一个文章的ID号。
(三)有益效果
本发明提供了一种微信文章以及公众号的获取方法以及获取系统,本发明采用增量列表来保证微信文章及公众号的增量式爬取;通过第三方平台解决了搜狗搜索时出现的验证码问题,保证爬虫稳定地爬取;另外爬虫利用文章ID以及公众微信号做布隆过滤,保证了微信爬虫系统不会由于URL的变化而无法正常运行。本发明的方法及系统能够高效、稳定、全面地爬取微信公众号和文章,具有很好的可用性;
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A、1B为本发明的一个较佳实施例的微信文章以及公众号的获取方法流程图;
图2为本发明的另一个较佳实施例的微信文章以及公众号的获取方法流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细描述。以下实施例用于说明本发明,但不能用来限制本发明的范围。
一种微信文章以及公众号的获取方法,如图1A、1B所示,所述方法包括以下步骤:
S1、获取微信检索所需关键字,对于每一个关键字,为其构建多个搜索URL,并将构建的所述搜索URL放入请求队列;其中述搜索URL是指通过关键词搜索微信文章列表的URL。
S2、启动爬虫组件,针对一关键字的每一个搜索URL以及搜索URL页面上未爬取的URL进行爬取:
S21、判断当前爬取页面是否是验证码页面,若当前爬取页面是验证码页面,则执行步骤S22,否则执行步骤S23;
S22、获取当前页面的验证码,并上传至第三方平台,由所述第三方平台进行验证码识别,之后模拟验证码提交表单提交验证码,之后执行所述步骤S21;
S23、判断当前爬取页面的URL是否为当前关键字对应的多个所述搜索URL中的一个,若是执行步骤S24,否则执行步骤S30;
S24、利用微信的文章ID号以及微信号做布隆过滤,筛选出当前爬取页面中未爬取的微信文章的URL以及对应的微信公众号的URL,并放入所述请求队列;对于微信文章的URL以及微信公众号的URL中的每一个URL,执行步骤S21;
S25、判断当前爬取页面是否为当前关键字的第一个搜索URL对应的页面,若是执行步骤S26,否则执行步骤S27;
S26、获取当前爬取页面的第一个文章的ID号,并更新入增量列表,之后执行步骤S27;其中所述增量列表用于存储每一个关键字的第一个页面的第一个文章的ID号;
S27、判断当前爬取页面是否为当前关键字的最后一个搜索URL对应的页面,若是,则当前关键字的爬取操作完成,执行步骤S29;否则执行步骤S28;
S28、判断当前爬取页面的下一个搜索URL对应的页面是否已经爬过,若是,执行步骤S29;否则,将当前爬取页面的下一个搜索URL放入所述请求队列中,并执行步骤S21;
S29、判断当前关键字是否是最后一个关键字,若是,爬虫结束;否则,执行步骤S21进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作。
S30、从当前爬取页面中解析得到微信公众号或者微信文章,并将析得到的微信公众号或者微信文章进行处理,之后进行存储。
上述方法采用增量列表来保证微信文章及公众号的增量式爬取;通过第三方平台解决了搜狗搜索时出现的验证码问题,保证爬虫稳定地爬取;另外爬虫利用文章ID以及公众微信号做布隆过滤,保证了微信爬虫系统不会由于搜狗搜索平台URL的变化而无法正常运行。
进一步地,所述方法还包括增量列表加载的步骤;以及所述方法还包括布隆过滤器初始化的步骤。
进一步地,所述步骤S1中将第一个关键字的搜索URL放入所述请求队列,并且在步骤S27中,当前关键字的爬取操作完成后再将选一个关键字的搜索URL放入所述请求队列。此改进方案即先爬取完一个关键字,再将另一个关键字的URL放入请求队列,进行处理,可以更加准确完整的爬取网页数据。因此在步骤S1中第一个关键字的搜索URL可以称为种子URL,种子URL是搜索微信文章的URL。
进一步地,所述步骤S24中,在布隆过滤方法筛选出当前爬取页面中未爬取的微信文章的URL以及微信公众号的URL之前,所述方法还包括以下步骤:将当前爬取页面的URL以及当前关键字存储到断点日志中。断点日志是指记录爬虫运行状态的文件,用于故障点恢复实现爬虫的断点重爬。
进一步地,所述步骤S26中,在获取当前爬取页面的第一个文章的ID号之前,所述方法还包括以下步骤:将增量列表下载到本地文件中,从下载的增量列表中获取上一次存储的关键字以及对应的第一个搜索URL页面上第一个文章的ID号,并存入内存中。
对应于上述方法存在一种微信文章以及公众号获取系统,所述系统包括:
搜索URL构建模块,其用于获取微信检索所需关键字,对于每一个关键字,为其构建多个搜索URL,并将构建的所述搜索URL放入请求队列;
页面解析模块,是指通过选择器解析网页内容的组件。针对一关键字的每一个搜索URL以及搜索URL页面上未爬取的URL进行爬取,所述页面解析模块用于判断当前爬取页面的URL是否为当前关键字对应的多个所述搜索URL中的一个,若是则利用布隆过滤器筛选出当前爬取页面中未爬取的微信文章的URL以及微信公众号的URL,并放入所述请求队列,之后进行爬取;若否,解析当前爬取页面得到微信公众号或者微信文章;所述页面解析模块还用于判断当前爬取页面是否为当前关键字的第一个搜索URL对应的页面,若是获取当前爬取页面的第一个文章的ID号,并更新入增量列表,若否,所述页面解析模块还用于判断当前爬取页面是否为当前关键字的最后一个搜索URL对应的页面,若是,则当前关键字的爬取操作完成,进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作,若否,所述页面解析模块还用于判断当前爬取页面的下一个搜索URL对应的页面是否已经爬过,若是,则当前关键字的爬取操作完成,进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作;否则,将当前爬取页面的下一个搜索URL放入所述请求队列中,进行爬取操作;
解析处理模块,用于对所述页面解析模块析得到的微信公众号或者微信文章进行处理;
数据库模块,用于将所述解析处理模块处理后的数据进行存储;其是对数据持久化操作的组件,还用于数据查询、数据存储、批量存储。
打码模块,用于判断当前爬取页面是否是验证码页面,若当前爬取页面是验证码页面,则获取当前页面的验证码,并上传至第三方平台,由所述第三方平台进行验证码识别,之后模拟验证码提交表单提交验证码,若验证不成功,程序则会持续地进行验证,直至验证成功。
上述页面解析模块主要负责根据不同的URL执行不同的页面解析逻辑,URL一般包括列表URL(即搜索URL)和详细URL(即微信文章URL以及微信公众号URL),从列表URL中解析出详细URL放入请求队列中,从详细URL中解析详细内容,该模块是最重要的模块,包括网页解析,增量更新,断点日志记录,布隆过滤,同时还需要根据不同正常URL以及各种异常URL采取的逻辑处理。
进一步地,所述系统还包括初始化模块,用于初始化所述布隆过滤器、搜索URL构建模块、页面解析模块、解析处理模块、数据库模块以及打码模块。
进一步地,布隆过滤器是包含固定长度的二进制向量以及一系列随机映射函数的组件,考虑搜狗搜索平台的URL会变化,但是微信文章ID以及微信公众号的微信号不会变化,通过布隆算法对文章ID以及微信公众号的微信号进行过滤,实现对微信文章ID、微信公众号的微信号的去重,以找到没有爬取过的微信文章URL和微信公众号URL。
进一步地,所述搜索URL构建模块用于先构建第一个关键字的搜索URL并放入所述请求队列,在一个关键字的爬取操作完成后再构建下一个关键字的搜索URL并放入所述请求队列。
进一步地,所述系统还包括日志模块,其用于存储当前爬取页面的URL以及当前关键字,由上述初始化模块进行初始化。
进一步地,所述系统还包括增量文件,用于存储每一个关键字的第一个页面的第一个文章的ID号。爬虫每更新完一个关键字,则增量文件与增量列表(内存链表,程序初始时保存的是上次爬虫更新)进行同步,用于爬虫的增量更新。
进一步地,所述系统还包括下载组件,下载组件是指根据URL下载网页内容的组件,用于根据请求头配置请求和创建请求,获取请求响应内容,将该响应头信息设置为下次请求的请求头信息,包括设置Cookie信息;并由上述初始化模块进行初始化。
上述方法及系统可以高效、稳定、全面地获取微信文章以及微信公众号的信息。
下面结合具体的实施例对本发明的方法进行说明:
一种获取微信文章及公众号的方法包括步骤,如图2所示:
S1.获取微信搜索所需关键字;
S2.种子URL的初始化,下载组件、页面解析模块、解析处理模块、数据库模块、布隆过滤器等的初始化以及日志模块、增量文件的加载;
S3.组装爬虫组件(爬虫初始化),启动爬虫;
S4.判断爬取页面是否是验证码页面,若是验证码页面进入S5,否则进入S8;
S5.将验证码上传到第三方平台进行验证码识别;
S6.模拟验证码提交表单提交验证码;
S7.重新访问下载页面,转入步骤S4;
S8.判断爬取页面URL是否是搜索URL,若是搜索URL,进入S9,否则进入S20;
S9.记录当前爬虫运行状态,将当前爬取的页数以及关键字存储到断点日志中;
S10.根据文章ID、微信公众号的微信号进行布隆过滤,将该页未爬取的微信文章URL以及微信公众号URL放入请求队列中。
S11.判断爬取页面是否是第一页,若是进入S12,否则进入S15;
S12.将增量列表存储到本地文件中;
S13.从增量列表获取上次更新时该关键字第一页的第一个文章ID,缓存在内存变量中;
S14.获取该关键字第一页的第一个文章ID更新增量列表;
S15.判断爬取页面是否是最后一页,若是进入S17,否则进入S16;
S16.判断下一页是否已经爬过,若是进入S17,否则进入S18;
S17.判断该关键字是否是最后一个关键字,若是结束,否则进入S19;
S18.将该关键字的下一页URL放入请求队列中,并返回步骤S4;
S19.将下一个关键字搜索URL放入请求队列中,并返回步骤S4;
S20.从爬取页面中解析出微信公众号或者微信文章。
S21.存储微信公众号或者微信文章。
S22.同步本地去重文件。
以上实施方式仅用于说明本发明,而非对本发明的限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行各种组合、修改或者等同替换,都不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种微信文章以及公众号的获取方法,其特征在于,所述方法包括以下步骤:
S1、获取微信检索所需关键字,对于每一个关键字,为其构建1个或多个搜索URL,并将构建的所述搜索URL放入请求队列;
S2、启动爬虫组件,对每一个关键字的每一个搜索URL以及对应于所述搜索URL的页面上未爬取的URL进行爬取;其中所述步骤S2中爬取步骤具体为:
S21、判断当前爬取页面是否是验证码页面,若当前爬取页面是验证码页面,则执行步骤S22,否则执行步骤S23;
S22、获取当前页面的验证码,并上传至第三方平台,由所述第三方平台进行验证码识别,之后由模拟验证码提交表单提交验证码,之后执行所述步骤S21;
S23、判断当前爬取页面的URL是否为当前关键字对应的多个所述搜索URL中的一个,若是执行步骤S24,否则执行步骤S30;
S24、利用微信的文章ID号以及微信号做布隆过滤,筛选出当前爬取页面中未爬取的微信文章的URL以及对应的微信公众号的URL,并放入所述请求队列;对于微信文章的URL以及微信公众号的URL中的每一个URL,执行步骤S21;
S25、判断当前爬取页面是否为当前关键字的第一个搜索URL对应的页面,若是执行步骤S26,否则执行步骤S27;
S26、获取当前爬取页面的第一个文章的ID号,并更新入增量列表,之后执行步骤S27;其中所述增量列表用于存储每一个关键字的第一个页面的第一个文章的ID号;
S27、判断当前爬取页面是否为当前关键字的最后一个搜索URL对应的页面,若是,则当前关键字的爬取操作完成,执行步骤S29;否则执行步骤S28;
S28、判断当前爬取页面的下一个搜索URL对应的页面是否已经爬过,若是,执行步骤S29;否则,将当前爬取页面的下一个搜索URL放入所述请求队列中,并执行步骤S21;
S29、判断当前关键字是否是最后一个关键字,若是,爬虫结束;否则,执行步骤S21进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作,
S30、从当前爬取页面中解析得到微信公众号或者微信文章,并将分析得到的微信公众号或者微信文章进行处理,之后进行存储。
2.根据权利要求1所述的方法,其特征在于,所述步骤S26中更新入增量列表之前,所述方法还包括增量列表加载的步骤。
3.根据权利要求1所述的方法,其特征在于,所述步骤S1中将第一个关键字的搜索URL放入所述请求队列,并且在步骤S27中,当前关键字的爬取操作完成后再将下一个关键字的搜索URL放入所述请求队列。
4.根据权利要求1所述的方法,其特征在于,所述步骤S24中,在布隆过滤方法筛选出当前爬取页面中未爬取的微信文章的URL以及微信公众号的URL之前,所述方法还包括以下步骤:
将当前爬取页面的URL以及当前关键字存储到断点日志中。
5.根据权利要求1所述的方法,其特征在于,所述步骤S26中,在获取当前爬取页面的第一个文章的ID号之前,所述方法还包括以下步骤:
将增量列表下载到本地文件中,从下载的增量列表中获取上一次存储的关键字以及对应的第一个搜索URL页面上第一个文章的ID号,并存入内存中。
6.一种微信文章以及公众号获取系统,其特征在于,所述系统包括:
搜索URL构建模块,其用于获取微信检索所需关键字,对于每一个关键字,为其构建多个搜索URL,并将构建的所述搜索URL放入请求队列;
页面解析模块,针对一关键字的每一个搜索URL以及搜索URL页面上未爬取的URL进行爬取,所述页面解析模块用于判断当前爬取页面的URL是否为当前关键字对应的多个所述搜索URL中的一个,若是多个所述搜索URL中的一个,则利用布隆过滤器筛选出当前爬取页面中未爬取的微信文章的URL以及微信公众号的URL,并放入所述请求队列,之后进行爬取;若不是多个所述搜索URL中的一个,则解析当前爬取页面得到微信公众号或者微信文章;所述页面解析模块还用于判断当前爬取页面是否为当前关键字的第一个搜索URL对应的页面,若是当前关键字的第一个搜索URL对应的页面,则获取当前爬取页面的第一个文章的ID号,并更新入增量列表,若不是当前关键字的第一个搜索URL对应的页面,则所述页面解析模块还用于判断当前爬取页面是否为当前关键字的最后一个搜索URL对应的页面,若是当前关键字的最后一个搜索URL对应的页面,则当前关键字的爬取操作完成,进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作,若不是当前关键字的最后一个搜索URL对应的页面,则所述页面解析模块还用于判断当前爬取页面的下一个搜索URL对应的页面是否已经爬过,若已经爬过,则当前关键字的爬取操作完成,进行下一个关键字的搜索URL以及搜索URL页面上未爬取的URL的爬取操作;若没有爬过,则将当前爬取页面的下一个搜索URL放入所述请求队列中,进行爬取操作;
解析处理模块,用于对所述页面解析模块析得到的微信公众号或者微信文章进行处理;
数据库模块,用于将所述解析处理模块处理后的数据进行存储;
打码模块,用于判断当前爬取页面是否是验证码页面,若当前爬取页面是验证码页面,则获取当前页面的验证码,并上传至第三方平台,由所述第三方平台进行验证码识别,之后模拟验证码提交表单提交验证码。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括初始化模块,用于初始化所述布隆过滤器、搜索URL构建模块、页面解析模块、解析处理模块、数据库模块以及打码模块。
8.根据权利要求6所述的系统,其特征在于,所述搜索URL构建模块用于先构建第一个关键字的搜索URL并放入所述请求队列,在一个关键字的爬取操作完成后再构建下一个关键字的搜索URL并放入所述请求队列。
9.根据权利要求6所述的系统,其特征在于,所述系统还包括日志模块,其用于存储当前爬取页面的URL以及当前关键字。
10.根据权利要求6所述的系统,其特征在于,所述系统还包括增量文件,用于存储每一个关键字的第一个页面的第一个文章的ID号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510609672.7A CN105320740B (zh) | 2015-09-22 | 2015-09-22 | 微信文章以及公众号的获取方法及获取系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510609672.7A CN105320740B (zh) | 2015-09-22 | 2015-09-22 | 微信文章以及公众号的获取方法及获取系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105320740A CN105320740A (zh) | 2016-02-10 |
CN105320740B true CN105320740B (zh) | 2018-10-16 |
Family
ID=55248127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510609672.7A Active CN105320740B (zh) | 2015-09-22 | 2015-09-22 | 微信文章以及公众号的获取方法及获取系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105320740B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126747A (zh) * | 2016-07-14 | 2016-11-16 | 北京邮电大学 | 基于爬虫的数据获取方法及装置 |
CN108090072A (zh) * | 2016-11-22 | 2018-05-29 | 上海看榜信息科技有限公司 | 一种用于图文信息的分钟级监测系统 |
CN106789559B (zh) * | 2016-12-02 | 2019-09-24 | 上海智臻智能网络科技股份有限公司 | 用于微信公众平台的信息处理方法、装置、及系统 |
CN106909637A (zh) * | 2017-02-14 | 2017-06-30 | 国家计算机网络与信息安全管理中心 | 微信公众号的影响力分析方法和系统 |
CN107180103A (zh) * | 2017-05-31 | 2017-09-19 | 成都明途科技有限公司 | 搜索更便捷快速的交互系统 |
CN107948052A (zh) * | 2017-11-14 | 2018-04-20 | 福建中金在线信息科技有限公司 | 信息爬取方法、装置、电子设备和系统 |
CN108038221B (zh) * | 2017-12-22 | 2021-10-15 | 新奥(中国)燃气投资有限公司 | 一种信息抓取方法及装置 |
CN108038233B (zh) * | 2017-12-26 | 2021-07-23 | 福建中金在线信息科技有限公司 | 一种采集文章的方法、装置、电子设备及存储介质 |
CN108491434A (zh) * | 2018-02-09 | 2018-09-04 | 深圳前海道己社文化有限公司 | 基于微信公众号的文章展示方法、装置和终端 |
CN110555146A (zh) * | 2018-03-29 | 2019-12-10 | 中国科学院信息工程研究所 | 一种网络爬虫伪装数据的生成方法及系统 |
CN109284431A (zh) * | 2018-08-09 | 2019-01-29 | 国家计算机网络与信息安全管理中心 | 一种从微信中发现特定领域微信公众号的方法 |
CN109388735A (zh) * | 2018-09-13 | 2019-02-26 | 广州丰石科技有限公司 | 一种爬取微信公众号信息的方法 |
CN110188257B (zh) * | 2019-04-16 | 2021-12-31 | 国家计算机网络与信息安全管理中心 | 一种移动应用数据采集方法及装置 |
CN112579850A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 断点恢复方法及装置 |
CN112256959B (zh) * | 2020-06-11 | 2022-11-08 | 国家计算机网络与信息安全管理中心 | 一种分析微信公众号小程序收集信息的方法 |
CN113987320B (zh) * | 2021-11-24 | 2024-06-04 | 宁波深擎信息科技有限公司 | 基于智能页面解析的实时资讯爬虫方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253991A (zh) * | 2011-05-25 | 2011-11-23 | 北京星网锐捷网络技术有限公司 | Url存储方法、网页过滤方法、装置及系统 |
CN102663058A (zh) * | 2012-03-30 | 2012-09-12 | 华中科技大学 | 一种分布式网络爬虫系统中的url去重方法 |
US8577878B1 (en) * | 2006-05-09 | 2013-11-05 | Google Inc. | Filtering search results using annotations |
CN103455615A (zh) * | 2013-09-10 | 2013-12-18 | 中国地质大学(武汉) | 一种微信帐号的排序过滤检索方法 |
CN104794193A (zh) * | 2015-04-17 | 2015-07-22 | 南京大学 | 一种有效链接获取的网页增量抓取方法 |
-
2015
- 2015-09-22 CN CN201510609672.7A patent/CN105320740B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8577878B1 (en) * | 2006-05-09 | 2013-11-05 | Google Inc. | Filtering search results using annotations |
CN102253991A (zh) * | 2011-05-25 | 2011-11-23 | 北京星网锐捷网络技术有限公司 | Url存储方法、网页过滤方法、装置及系统 |
CN102663058A (zh) * | 2012-03-30 | 2012-09-12 | 华中科技大学 | 一种分布式网络爬虫系统中的url去重方法 |
CN103455615A (zh) * | 2013-09-10 | 2013-12-18 | 中国地质大学(武汉) | 一种微信帐号的排序过滤检索方法 |
CN104794193A (zh) * | 2015-04-17 | 2015-07-22 | 南京大学 | 一种有效链接获取的网页增量抓取方法 |
Non-Patent Citations (2)
Title |
---|
Content routing and lookup schemes using global bloom filter for content-delivery-as-a-service;Y Jin;《IEEE Systems Journal》;20141231(第8期);全文 * |
深度web采集系统的设计与实现;宋宇;《中国优秀硕士论文全文库信息科技辑》;20130515(第2013年05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105320740A (zh) | 2016-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105320740B (zh) | 微信文章以及公众号的获取方法及获取系统 | |
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
Mahto et al. | A dive into Web Scraper world | |
CN104065565B (zh) | 推送消息的方法、服务器、客户端装置和系统 | |
CN105243159A (zh) | 一种基于可视化脚本编辑器的分布式网络爬虫系统 | |
CN104598518B (zh) | 一种内容的推送方法和装置 | |
CN106126648B (zh) | 一种基于重做日志的分布式商品信息爬虫方法 | |
CN110851681B (zh) | 爬虫处理方法、装置、服务器及计算机可读存储介质 | |
CN107809383A (zh) | 一种基于mvc的路径映射方法及装置 | |
CN101441629A (zh) | 一种非结构化网页信息的自动采集方法 | |
CN108011931A (zh) | Web数据采集方法和Web数据采集系统 | |
CN107783850A (zh) | 一种节点树勾选记录的解析方法、装置、服务器及系统 | |
CN110535974A (zh) | 待投放资源的推送方法、推送装置、设备及存储介质 | |
CN107153702A (zh) | 一种数据处理方法及装置 | |
US20210279113A1 (en) | Resegmenting chunks of data based on source type to facilitate load balancing | |
CN109101657A (zh) | 传销推荐人网站识别方法、装置及设备 | |
CN104424188A (zh) | 对获取的网页数据进行更新的系统及方法 | |
CN108549714A (zh) | 一种数据处理方法及装置 | |
CN110659354A (zh) | 问答系统的建立方法、装置、存储介质及电子设备 | |
CN105069004A (zh) | 专利信息自动采集方法 | |
CN112671878A (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN116155597A (zh) | 访问请求的处理方法、装置及计算机设备 | |
CN110275974A (zh) | 样本数据集的数据添加方法、装置、终端设备及存储介质 | |
CN111026945A (zh) | 多平台爬虫调度方法、装置和存储介质 | |
CN107679168A (zh) | 一种基于java平台的目标网站内容获取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |