CN103389999A - 一种增量抓取微博信息的方法 - Google Patents

一种增量抓取微博信息的方法 Download PDF

Info

Publication number
CN103389999A
CN103389999A CN2012101452473A CN201210145247A CN103389999A CN 103389999 A CN103389999 A CN 103389999A CN 2012101452473 A CN2012101452473 A CN 2012101452473A CN 201210145247 A CN201210145247 A CN 201210145247A CN 103389999 A CN103389999 A CN 103389999A
Authority
CN
China
Prior art keywords
microblogging
user
grabbing
capture
microblog
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.)
Pending
Application number
CN2012101452473A
Other languages
English (en)
Inventor
倪志豪
梁循
曹润
李亚平
余力
梁霞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renmin University of China
Original Assignee
Renmin University of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renmin University of China filed Critical Renmin University of China
Priority to CN2012101452473A priority Critical patent/CN103389999A/zh
Publication of CN103389999A publication Critical patent/CN103389999A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种增量抓取微博信息的方法,包括初次微博数据抓取和增量抓取截止到上次抓取时间的新增的微博数据,属于智能信息处理技术。现有技术中,对于海量微博信息的采集工作不能做到增量式抓取,常出现微博信息被重复多次抓取的情况。本发明所述的方法针对抓取微博信息的实际应用,通过合理的接入微博平台API,从而实现了一个实用的增量抓取微博算法。采用本发明所述的方法,能够明显提高微博信息的抓取的准确性与全面性,大大增强其实用性。本方法可广泛地应用于舆情分析与监控。

Description

一种增量抓取微博信息的方法
技术领域
发明属于智能信息抓取技术,具体涉及一种增量微博抓取的方法。
背景技术
热点事件、公共舆论的形成与发展,往往是由一个议论开始,并沿着若干级差从无序向有序逐渐递进或者消减的过程。事件爆发时,犹如以石击水,常常容易引起群众的广泛关注,使得有关信息在短时间内迅速传递,单位时间爆发出来的信息量很大。政府如何以最快速度收集整理分析网上相关舆情信息,跟踪事件发展,快速回答公众疑问,这些都是摆在舆情监管部门的难题。互联网已经成为政府了解民情的直接渠道,也是新形势下政府的重要舆论阵地。因此,网络舆论一旦被错误地控制和引导,将成为影响社会稳定的重大隐患。如何应对网络舆情,目前正在考验着我国各级政府。
网络日益成为人们发布信息、沟通信息的主要媒体,网络上的信息也越来越能反映人们关注的焦点和社会热点事件。Web2.0时代,网络具有传播快、成本低、联动性强等特点,传播环境、传播的人都发生了天翻地覆的变化,民意表达逐渐向网络倾斜。网络论坛、博客、社交类网站、微博等给大家提供了可以尽情表达的渠道,网络上的声音是推动社会进步的力量,如何因势利导,及时掌握社会舆情动态,积极引导社会舆论,是各级政府部门所面临的严肃课题与严峻挑战,而全面快速地收集这些意见和声音是我们首先需要解决的问题。
随着近年来网络论坛、博客、社交类网站和微博的蓬勃发展,普通用户在信息发表和传播中逐渐开始起越来越重要的作用,互联网用户不再只是信息的被动接受者,同时也是互联网信息资源的主动提供者和传播者。以广大网民为主角的论坛和博客,作为互联网信息的一个重要组成部分,近几年再次焕发青春,据统计,2010年其整体规模有了显著的增长,其中网站数从1月的15.98万增长到12月的22.18万,增长率达到39%(http://www.chinabidding.com.cn/cblcn/it/rjshow?id=1020233637)。此外,近几年新产生的微博在传播领域的重要性也在为更多人所重视,越来越多的政府机构、企业、名人、正在开通微博,微博已经成为一个发表意见与看法的公认平台,也是很多主流媒体的信息来源。据统计,2010年中国微博站点出现“井喷”式的增长(http://www.chinabidding.com.cn/cblcn/it/rjshow?id=1020233637)。微博(Twitter)在国外的迅猛发展引起了国内互联网行业的关注。2009年8月,新浪微博内测版成为门户网站中第一家提供微博服务的网站,微博正式进入中文上网主流人群视野。2010年,搜狐微博、网易微博、腾讯微博等开始内测。微博用户规模几何级数增长,截至2011年8月,新浪微博用户数已超过2亿(http://cn.wsj.com/gb/20110819/rth120835.asp?source=channel),腾讯微博用户数也已经突破1亿。
以上数据显示微博信息越来越能代表网络舆情与公共舆论,也就是说如果能全面了解掌握微博信息,也就掌握了网络舆情的发展。微博的信息反映了社会热点新闻或事件的出现或降温,而网络上反映热点新闻或事件的信息又会进一步推动广大网民对于热点新闻和事件的关注程度和看法,能够实时地、增量式地抓取微博信息才能全面正确地了解网络舆情的发展情况,是十分重要的。
现有技术中,对于海量微博信息的采集工作不能做到增量式抓取,常常出现微博信息被重复多次抓取的情况。多数研究分析采用一次性抓取数据的方法,即一次性抓取过去某一段时间中的部分用户的微博内容,这样的抓取方式虽然也可以分析舆情走势,找出热点话题,但是第二次分析的时候又需要重头进行抓取,降低了数据收集的时效性。同时,微博是一个始终变化的动态信息平台,如果有人回复了若干天前的一条微博,或是很多用户评论或者转发若干天前的微博,这样此条微博的转发数和评论数也会有相应的变化。而这种变化通过以往的抓取方法是较难实现的。
所以,在本发明中,我们使用适合的API接入技术,实现增量抓取微博信息。本发明对于网络监管机构、关注社会热点新闻和事件的机构来说,是非常有价值的自动收集网民意见与观点的工具。
发明内容
本发明是利用微博开放平台,通过OPEN API来接入,实现增量抓取微博用户及其内容,包括新增微博及其评论和转发,从而最终实现对微博平台的动态抓取与监控的目的。
首先所有的微博平台都是开放的,公布了相关可以进行连接和使用的OPENAPI,基于这些OPEN API,我们获得了抓取微博数据基础与途径,整个增量式微博数据抓取程序设计框架如图3。我们可以看到本方法主要涉及到如下内容:微博开放平台、OAuth认证授权、API访问、API源程序、访问队列控制程序、存储控制程序及Mysql数据库。增量式微博数据抓取程序首先注册一个测试的应用程序ID及其密钥(CONSUMER_KEY&CONSUMER_SECRET),获取该ID和密钥之后,通过OAuth授权来获取访问微博OPEN API的访问,这里我们设计了一定的队列访问控制,基于MVC模式来设计model存储控制程序,最后同步更新Mysql数据中的相关数据表。
为了具体实现本发明,需要遵循如下具体步骤:
步骤1:获取一个微博种子用户uid_list,该种子用户uid_list表示为需要抓取的微博用户ID的集合;
步骤2:第一次抓取对种子用户uid_list进行全部信息抓取,包括用户的基本信息,用户的微博内容及其抓发与评论信息;
步骤3:增量抓取微博内容过程:
步骤3.1:更新用户基本信息,通过调用用户基本信息的API来更新用户基本信息,这里包括两张数据库表(userinfo,friendinfo);
步骤3.2:针对每个用户抓取最近更新发布的微博内容,对微博内容表(weiboinfo)按照createTime进行倒叙排序,找到最后一次微博创建时间将这个creatTime作为一个timestamp,通过扫描用户usertimeline这个API来对比该用户每个微博的创建时间,凡是比timestamp大的时间所发生的微博内容都需要抓取进入数据库中,同步更新数据库相关数据库表,(weiboinfo,weibo_repost,weibo_reply)。
步骤3.3:针对每个用户抓取最近更新的微博转发,根据步骤3.2抓取的微博内容,判断是否为转发微博,若是转发微博,找出原微博weibo_id,继而找到原微博用户UID,将抓到的微博内容作为转发内容更新到原微博用户UID发布的原微博weibo_id的转发内容表中。
步骤3.4:针对每个用户抓取最近更新的微博评论,从微博内容表(weiboinfo)中取出按照createTime进行倒叙排序,找到最后一次微博评论创建时间将这个creatTime作为一个timestamp,通过扫描用户最新更新的评论这个API来对比其中的创建时间与timestamp,凡是比timestamp大的时间所发生的微博内容都需要抓取进入数据库中,同步更新数据库相关数据库表。
步骤4:设定抓取时间进行定点抓取,循环步骤3.
其中涉及到五张数据库表:这里的表单只是给出一个实例,实际抓取的微博相关字段需要根据实际内容进行相关字段的设置,在原型系统中我们以腾讯微博为案例进行展示。
Table:userinfo//用户信息表
`user_id`bigint(20)NOT NULL,
`name`varchar(100)NOT NULL,
`province`varchar(40)DEFAULT NULL,
`city`varchar(40)DEFAULT NULL,
`collectTime`timestamp NOT NULL DEFAULT′0000-00-0000:00:00′,
`gender`char(1)DEFAULT NULL,
`verified`tinyint(1)DEFAULT NULL,
`friendsCount`int(11)DEFAULT NULL,
`followerCount`int(11)DEFAULT NULL,
`statusCount`int(11)DEFAULT NULL,
Table:follow_info//用户关注关系表
`user_id`bigint(20)NOT NULL,
`follow_user_id`bigint(20)NOT NULL,
Table:weiboinfo//用户微博内容表
`user_id`bigint(20)NOT NULL,
`weibo_id`bigint(20)NOT NULL,
`createTime`timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATECURRENT_TIMESTAMP,
`collectTime`timestamp NOT NULL DEFAULT′0000-00-0000:00:00′,
`repost_Count`int(11)DEFAULT NULL,
`reply_Count`int(11)DEFAULT NULL,
`weibo_status`text DEFAULT NULL,
`source`text DEFAULT NULL,
 Table:weibo repost//微博内容转发表
`weibo_id`bigint(20)NOT NULL,
`repost_user_id`bigint(20)NOT NULL,
`repost_id`bigint(20)NOT NULL,
`repost_text`text DEFAULT NULL,
`createTime`timestamp NOT NULL DEFAULT CURRENT TIMESTAMP ON UPDATECURRENT_TIMESTAMP,
`collectTime`timestamp NOT NULL DEFAULT′0000-00-0000:00:00′,
source text DEFAULT NULL,
Table:weibo_reply//微博内容评论表
`weibo_id`bigint(20)NOT NULL,
`reply_id`bigint(20)NOT NULL,
`reply_text`text DEFAULT NULL,
`replye_id`bigint(20)NOT NULL,
`replyee_id`bigint(20)NOT NULL,
`createTime`timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATECURRENT_TIMESTAMP,
`collectTime`timestamp NOT NULL DEFAULT′0000-00-0000:00:00′,
`source`text DEFAULT NULL,
附图说明
图1是腾讯微博示意图;
图2是本发明的系统设计图;
图3是本发明所述的增量式抓取微博信息的系统流程图;
图4是本发明中的微博用户个人信息表的数据库表单示例;
图5是本发明中的微博用户关注关系表的数据库表单示例;
图6是采用本发明所述方法增量式抓取的2012年3月10日新增的中类型为原创型微博的微博信息表;
图7是采用本发明所述方法增量式抓取的2012年3月10日新增的类型为转发型微博的微博信息表;
图8是采用本发明所述方法增量式抓取的2012年3月10日新增的类型为评论型微博的微博信息表;
具体实施方式
本发明方法示例,以腾讯微博为例进行抓取工作实例:
步骤1:API接入腾讯微博开放平台,登陆用户OAuth授权,从而进行API访问;
OAuth授权Java关键代码示例:
Figure BSA00000715571100071
步骤2:开始访问腾讯API,更新相关数据库表;
这里我们根据腾讯微博平台数据结构的实际情况,设计了更加准确的数据存储结构。我们设计了三张数据库表,userinfo(存储用户个人信息),friendinfo(存储用户关注关系),statuses(存储用户微博内容、评论、转发信息)。在这里我们可以看到用户微博内容、评论及转发信息存储在一张表statuses中,我们通过类型字段进行区分。字段名type(int):1为原创,2为转载,7为评论。正是由于腾讯微博平台数据的特殊性,才使得我们具体设计与发明专利中通常范围指的5个数据库表单不同,但是依然可以满足我们抓取并更新微博数据。
步骤2.1:抓取用户个人信息及其关注关系;
抓取用户个人信息及其关注关系的Java关键代码段示例:
Figure BSA00000715571100072
Figure BSA00000715571100081
步骤2.2:抓取并更新用户微博内容、评论及转发;
抓取并更新用户微博内容、评论及转发Java关键代码示例;
Figure BSA00000715571100082
数据库存储控制Java关键代码示例
Figure BSA00000715571100083
Figure BSA00000715571100091

Claims (6)

1.本发明方法涉及一个微博种子用户uid_list,该种子用户uid_list表示为需要抓取的微博用户ID的集合。
2.对上述种子用户uid_list进行全部信息抓取,包括用户的基本信息,用户的微博内容及其抓发与评论信息。
3.通过调用用户基本信息的API来更新用户基本信息,更新上述用户基本信息;针对每个用户抓取最近更新发布的微博内容,对微博内容表(weiboinfo)按照createTime进行倒叙排序,找到最后一次微博创建时间将上述creatTime作为一个timestamp,通过扫描用户usertimeline这个API来对比该用户每个微博的创建时间,凡是比timestamp大的时间所发生的微博内容都需要抓取进入数据库中,同步更新数据库相关数据库表。
4.针对每个用户抓取最近更新的微博转发,对上述抓取的微博内容,判断若为转发微博,找出原微博weibo_id,继而找到原微博用户UID,将抓到的微博内容作为转发内容更新到原微博用户UID发布的原微博weibo_id的转发内容表中。
5.针对每个用户抓取最近更新的微博评论,从上述抓取的微博内容表中取出按照createTime进行倒叙排序,找到最后一次微博评论创建时间将这个creatTime作为一个timestamp,通过扫描用户最新更新的评论这个API来对比其中的创建时间与timestamp,凡是比timestamp大的时间所发生的微博内容都需要抓取进入数据库中,同步更新数据库相关数据库表。
6.设定上述抓取时间进行定点抓取。 
CN2012101452473A 2012-05-11 2012-05-11 一种增量抓取微博信息的方法 Pending CN103389999A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012101452473A CN103389999A (zh) 2012-05-11 2012-05-11 一种增量抓取微博信息的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012101452473A CN103389999A (zh) 2012-05-11 2012-05-11 一种增量抓取微博信息的方法

Publications (1)

Publication Number Publication Date
CN103389999A true CN103389999A (zh) 2013-11-13

Family

ID=49534275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101452473A Pending CN103389999A (zh) 2012-05-11 2012-05-11 一种增量抓取微博信息的方法

Country Status (1)

Country Link
CN (1) CN103389999A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957245A (zh) * 2014-04-22 2014-07-30 北京微众文化传媒有限公司 互联网数据获取方法及装置
CN105426502A (zh) * 2015-11-26 2016-03-23 福州大学 基于社交网络的人物信息搜索与关系网绘制的方法
CN106933841A (zh) * 2015-12-29 2017-07-07 北京国双科技有限公司 论坛目录页内容爬取方法和装置
CN109361564A (zh) * 2018-11-01 2019-02-19 清华大学 基于主被动数据融合的互联网数据采集方法及装置
CN111414524A (zh) * 2020-03-17 2020-07-14 安徽火蓝数据有限公司 基于大数据的网络数据抓取方法
CN117150106A (zh) * 2023-10-31 2023-12-01 北京大学 数据处理的方法、系统及电子设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957245A (zh) * 2014-04-22 2014-07-30 北京微众文化传媒有限公司 互联网数据获取方法及装置
CN103957245B (zh) * 2014-04-22 2017-11-28 北京微众文化传媒有限公司 互联网数据获取方法及装置
CN105426502A (zh) * 2015-11-26 2016-03-23 福州大学 基于社交网络的人物信息搜索与关系网绘制的方法
CN106933841A (zh) * 2015-12-29 2017-07-07 北京国双科技有限公司 论坛目录页内容爬取方法和装置
CN109361564A (zh) * 2018-11-01 2019-02-19 清华大学 基于主被动数据融合的互联网数据采集方法及装置
CN111414524A (zh) * 2020-03-17 2020-07-14 安徽火蓝数据有限公司 基于大数据的网络数据抓取方法
CN117150106A (zh) * 2023-10-31 2023-12-01 北京大学 数据处理的方法、系统及电子设备
CN117150106B (zh) * 2023-10-31 2024-02-13 北京大学 数据处理的方法、系统及电子设备

Similar Documents

Publication Publication Date Title
Abel et al. Leveraging the semantics of tweets for adaptive faceted search on twitter
US10187490B2 (en) Discovering signature of electronic social networks
CN103389999A (zh) 一种增量抓取微博信息的方法
Adar et al. Implicit+ Structure+ and+ the+ Dynamics+ of+ Blogspace
CN105959371B (zh) 网页分享系统
CN106776841A (zh) 一种互联网舆情事件传播指数的获取方法和系统
WO2016010932A1 (en) Age-based policies for determining database cache hits
CA3116778A1 (en) Artificial intelligence engine for generating semantic directions for websites for automated entity targeting to mapped identities
CN102394798A (zh) 一种基于多元特征的微博信息传播行为预测方法及系统
US11886449B2 (en) Methods, apparatuses and computer program products for outputting improved autosuggestions in a group-based communication platform
Chen et al. Building and analyzing a global co-authorship network using google scholar data
CN103927297A (zh) 基于证据理论的中文微博可信度评估方法
CN109726319A (zh) 一种基于交互关系的用户影响力分析方法
TWI480749B (zh) 識別有機搜索引擎優化機會之方法
Qin et al. Ternary interaction evolutionary game of rumor and anti-rumor propagation under government reward and punishment mechanism
CN106156232B (zh) 一种网络信息传播的监控方法和装置
CN103853711B (zh) 一种文本信息处理方法及装置
Li et al. A comparative study of time series models in predicting COVID-19 cases
Wang et al. Cost-effectiveness analysis of rabies immunization strategy based on dynamic-decision tree model
Zhang et al. A simulated login-based SINA microblog data collection method and its data analysis
JP5138025B2 (ja) スパム候補抽出装置及びその方法
Yi et al. The evaluation of online social network’s nodes influence based on user’s attribute and behavior
Ren et al. Mean-field based opinion diffusion model in instant messaging network
Han et al. Prediction of Information Dissemination Scale in Large-scale Online Social Networks Based on Machine Learning: A Comparative Analysis
Yang et al. “Diba Expedition to Facebook”: A preliminary study of massive online collective action in China

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131113