本发明涉及计算机应用技术领域,特别涉及一种动态网站的直播方法及系统。
背景技术:
随着现代社会科技的发展,人们对生活的需求越来越高,crawlrobot也被需求应用于生活的各个方面,比如直播系统。crawlrobot也称作爬虫机器人、网络蜘蛛或者网络机器人,它为搜索引擎从互联网中下载网页,并且从相关网页链接中采集资源,是一个功能很强的网页的自动抓取程序。在这项技术诞生之初,其主要应用于搜索引擎之中,是决定一个搜索引擎搜索性能和扩展性的重要组成组成部分。
现有技术中,大多数直播系统往往面向的静态网站,并且面向的是免登录的网站。而随着现阶段网站的安全性越来越高,例如新浪微博这类动态网站,在登录网站的时候往往需要提供用户名和密码以及验证码,这样一来,传统直播系统就没有办法利用传统的爬虫机器人面向这类动态网站直播相关信息。并且,新浪微博也对相关请求进行了监控,在某一时间段来自某一ip的请求过于频繁会对其ip进行拒绝访问一段时间。因此,传统的直播系统无法对新浪微博这类动态网站进行直播。
这就使得需要相关人员获取最新信息需要不断地去刷新页面已获取目标数据,然而这样的工作方式不仅极大的消耗着人们的精力,而且,难以避免不可容忍的延迟。例如,在新浪微博和博客之中有很多大v会实时直播股市行情以及相关股票信息,以往人们获取相关信息只能通过刷新页面获取,这样的缺点往往不仅仅消耗着人力,而且往往会错过关键重要的信息。因此,如何利用爬虫机器人对动态网站中的数据进行直播,减少直播的延迟时间,提高用户体验,是现今急需解决的问题。
技术实现要素:
本发明的目的是提供一种动态网站的直播方法及系统,以利用爬虫机器人对动态网站中的数据进行直播,减少直播的延迟时间,提高用户体验。
为解决上述技术问题,本发明提供一种动态网站的直播方法,包括:
根据动态网站中选定用户的授权信息,获取所述授权信息对应的永久登陆所述动态网站的令牌;其中,所述授权信息包括对应的选定用户登陆动态网站的登录信息;
为每个所述令牌分配一个爬虫机器人,利用所述爬虫机器人获取所述动态网站的预设用户的当前最新数据,并将所述当前最新数据存储至数据库;
对所述数据库中存储的所述当前最新数据进行监控,获取所述预设用户更新的最新数据,并将所述最新数据发送至预设的直播平台。
可选的,所述根据动态网站中选定用户的授权信息,获取所述授权信息对应的永久登陆所述动态网站的令牌,包括:
根据所述授权信息,通过oauth2.0协议模拟用户获取所述授权信息对应的永久登陆所述动态网站的令牌。
可选的,所述根据所述授权信息,通过oauth2.0协议模拟用户获取所述授权信息对应的永久登陆所述动态网站的令牌之前,还包括:
向所述选定用户发送获取所述授权信息的授权请求;
获取所述选定用户返回的所述授权信息。
可选的,所述利用所述爬虫机器人获取所述动态网站的预设用户的当前最新数据,包括:
为每个所述预设用户分配预设数量的所述爬虫机器人;
每个所述预设用户对应的爬虫机器人依次在各自的预设时间内获取所述当前最新数据。
可选的,该方法还包括:
通过固定平台网站根据预设指标对每个所述预设用户对应的全部所述最新数据进行统计并展示统计结果。
此外,本发明还提供了一种动态网站的直播系统,包括:
访问授权模块,用于根据动态网站中选定用户的授权信息,获取所述授权信息对应的永久登陆所述动态网站的令牌;其中,所述授权信息包括对应的选定用户登陆动态网站的登录信息;
数据获取模块,用于为每个所述令牌分配一个爬虫机器人,利用所述爬虫机器人获取所述动态网站的预设用户的当前最新数据,并将所述当前最新数据存储至数据库;
所述数据库,用于存储每个所述预设用户对应的所述当前最新数据;
监听器模块,用于对所述数据库中存储的所述当前最新数据进行监控,获取所述预设用户更新的最新数据,并将所述最新数据发送至预设的直播平台。
可选的,所述访问授权模块,包括:
令牌获取单元,用于根据所述授权信息,通过oauth2.0协议模拟用户获取所述授权信息对应的永久登陆所述动态网站的令牌。
可选的,所述访问授权模块,包括:
发送单元,用于向所述选定用户发送获取所述授权信息的授权请求;
接收单元,用于获取所述选定用户返回的所述授权信息。
可选的,所述数据获取模块,包括:
分配单元,用于为每个所述预设用户分配预设数量的所述爬虫机器人;
获取单元,用于每个所述预设用户对应的爬虫机器人依次在各自的预设时间内获取所述当前最新数据。
可选的,该系统还包括:
统计模块,用于通过固定平台网站根据预设指标对每个所述预设用户对应的全部所述最新数据进行统计并展示统计结果。
本发明所提供的一种动态网站的直播方法,包括:根据动态网站中选定用户的授权信息,获取所述授权信息对应的永久登陆所述动态网站的令牌;其中,所述授权信息包括对应的选定用户登陆动态网站的登录信息;为每个所述令牌分配一个爬虫机器人,利用所述爬虫机器人获取所述动态网站的预设用户的当前最新数据,并将所述当前最新数据存储至数据库;对所述数据库中存储的所述当前最新数据进行监控,获取所述预设用户更新的最新数据,并将所述最新数据发送至预设的直播平台。
可见,本发明通过根据动态网站中选定用户的授权信息,获取授权信息对应的永久登陆动态网站的令牌,可以使爬虫机器人通过令牌永久登陆动态网站,解决了动态网站对爬虫机器人的访问限制,通过为每个令牌分配一个爬虫机器人,利用爬虫机器人获取动态网站的预设用户的当前最新数据,可以使用多个爬虫机器人对动态网站的预设用户的当前最新数据进行抓取,有效的避免了如新浪微博的动态网站对爬虫机器人爬取频率的限制,提高了直播的实时性,提升了用户体验。此外,本发明还提供了一种动态网站的直播系统,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种动态网站的直播方法的流程图;
图2为本发明实施例所提供的一种动态网站的直播方法的系统结构示意图。
图3为本发明实施例所提供的另一种动态网站的直播方法的流程图;
图4为本发明实施例所提供的另一种动态网站的直播方法的令牌获取示意图;
图5为本发明实施例所提供的另一种动态网站的直播方法的系统流程示意图;
图6为本发明实施例所提供的一种动态网站的直播系统的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1和图2,图1为本发明实施例所提供的一种动态网站的直播方法的流程图;图2为本发明实施例所提供的一种动态网站的直播方法的系统结构示意图。该方法可以包括:
步骤101:根据动态网站中选定用户的授权信息,获取所述授权信息对应的永久登陆所述动态网站的令牌;其中,所述授权信息包括对应的选定用户登陆动态网站的登录信息。
可以理解的是,选定用户可以为动态网站中的已有用户,也就是动态网站中的注册用户。对于选定用户的授权信息的具体获取方式,可以为向选定用户发送获取授权信息的授权请求,并接收选定用户返回的授权信息,也就是向动态网站中的任意注册用户发送获取授权信息的授权请求,接收注册用户返回的授权信息,其中,将返回的授权信息的注册用户作为选定用户;也可以为直接获取选定用户的授权信息,也就是可以专门在动态网站注册用户,直接获取该注册用户的授权信息,其中,该注册用户可以为选定用户。只要可以根据选定用户的授权信息获取对应的令牌,对于选定用户的授权信息的具体获取方式和选定用户的具体人员选择,可以由设计人员根据实用场景和用户需求自行设置,本实施例对此不做任何限制。
需要说明的是,对于本步骤中通过授权信息获取授权信息对应的永久登陆动态网站的令牌的具体方式,可以使用oauth2.0技术,也就是根据授权信息,通过oauth2.0协议模拟用户获取授权信息对应的令牌;也可以使用其他技术。只要可以通过授权信息获取永久登陆动态网站的令牌,对于获取令牌的具体方式,本实施例不做任何限制。
具体的,本步骤可以如图2所示,动态网站直播系统的访问授权模块向动态网站发送授权信息,接收动态网站返回的该授权信息对应的令牌(accessrobot)。本实施例对此不受任何限制。
步骤102:为每个所述令牌分配一个爬虫机器人,利用所述爬虫机器人获取所述动态网站的预设用户的当前最新数据,并将所述当前最新数据存储至数据库。
其中,本步骤中利用爬虫机器人获取动态网站的预设用户的当前最新数据的具体方式,可以为每个爬虫机器人通过令牌和从ip代理服务器获取ip地址登陆动态网站,然后在预设的安全爬取时间内找到预设用户并获取该预设用户的当前最新数据;也可以为其他方式,只要可以利用爬虫机器人获取动态网站的预设用户的当前最新数据,对于具体的获取方式,本实施例不做任何限制。
可以理解的是,由于如新浪微博的动态网站会在某一时间段来自某一ip的请求过于频繁会对其ip进行拒绝访问一段时间,也就是对每个爬虫机器人的爬取频率进行了限制,因此可以使用多个爬虫机器人通过本步骤共同获取动态网站的预设用户的当前最新数据的方式,如为每个预设用户分配预设数量的爬虫机器人,每个预设用户对应的爬虫机器人依次在各自的预设时间内获取当前最新数据。本实施例对此不做任何限制。
需要说明的是,本步骤中预设用户可以为动态网站中的需要进行直播的用户,如预设用户可以为新浪微博中的需要进行直播的股市大v。预设用户的当前最新数据可以为预设用户已发布的最新的数据,如当前最新数据可以为新浪微博中的需要进行直播的股市大v已发布的最新的微博。对于预设用户和当前最新数据的具体内容可以由设计人员根据实用场景和用户需求自行设置,本实施例对此不做任何限制。
具体的,本步骤可以如图2所示,动态网站直播系统的访问授权模块将令牌(accesstoken)发送至数据获取模块,数据获取模块为每个令牌分配一个爬虫机器人组中的爬虫机器人(crawlrobot),每个爬虫机器人通过ip代理服务器获取各自不同ip,设置在安全爬取时间内进行对动态网站中预设用户的当前最新数据进行爬取。
步骤103:对所述数据库中存储的所述当前最新数据进行监控,获取所述预设用户更新的最新数据,并将所述最新数据发送至预设的直播平台。
其中,预设用户更新的最新数据可以为第一个爬虫机器人获取并存储到数据库中的预设用户更新的当前最新数据,如多个爬虫机器人对新浪微博中的一个股市大v发布的最新微博进行获取时,当该股市大v更新一条微博后,也就是发布一条微博后,预设用户更新的最新数据可以为第一个爬虫机器人获取并存储到数据库的微博。
可以理解的是,只要可以保证获取预设用户更新的最新数据,对于本步骤中对数据库中存储的当前最新数据进行监控的具体方式,可以为如图2所示的方式,动态网站直播系统的监听器模块通过webservice提供的数据接口(restful),不断轮询数据库,直至发现预设用户更新的最新数据,也可以使用其他方式,本实施例对此不受任何限制。
需要说明的是,预设的直播平台可以为qq群和/或微信群和/或平台直播网站。具体的,本步骤可以如图2所示,动态网站直播系统的监听器模块通过webservice提供的数据接口(restful),不断轮询数据库,直至发现预设用户更新的最新数据,并将最新数据推送给qq群、微信群和平台直播网站进行直播。
优选的,本实施例所提供的方法还可以包括:通过固定平台网站根据预设指标对每个预设用户对应的全部最新数据进行统计并展示统计结果。也就是说,对于本实施例所提供的方法,不仅可以通过qq群、微信群和平台直播网站对预设用户更新的最新数据进行直播,还可以通过平台网站对以往直播的数据进行相关的统计,提高用户体验。
本实施例中,本发明实施例通过根据动态网站中选定用户的授权信息,获取授权信息对应的永久登陆动态网站的令牌,可以使爬虫机器人通过令牌永久登陆动态网站,解决了动态网站对爬虫机器人的访问限制,通过为每个令牌分配一个爬虫机器人,利用爬虫机器人获取动态网站的预设用户的当前最新数据,可以使用多个爬虫机器人对动态网站的预设用户的当前最新数据进行抓取,有效的避免了如新浪微博的动态网站对爬虫机器人爬取频率的限制,提高了直播的实时性,提升了用户体验。
请参考图3、图4和图5、图3为本发明实施例所提供的另一种动态网站的直播方法的流程图;图4为本发明实施例所提供的另一种动态网站的直播方法的令牌获取示意图;图5为本发明实施例所提供的另一种动态网站的直播方法的系统流程示意图。该方法可以包括:
步骤201:向选定用户发送获取授权信息的授权请求。
其中,本步骤可以为向动态网站中全部或部分注册用户发送授权请求,也就是如图4所示,动态网站直播系统作为资源请求方通过动态网站提供的接口向资源拥有者(注册用户)请求授权。
可以理解的是,对于授权请求发送的部分注册用户的选取方式,可以由设计人员根据实用场景自行设置,本实施例对此不做任何限制。
步骤202:获取选定用户返回的授权信息。
其中,选定用户可以为返回授权信息的注册用户。本步骤可以如图4所示,资源拥有者向资源请求方给予授权。
需要说明的是,只要可以通过授权信息获取永久登陆动态网站的令牌,对于获取选定用户返回的授权信息的具体内容,也就是授权信息中包含的具体内容,本实施例不做任何限制。
步骤203:根据动态网站中选定用户的授权信息,获取授权信息对应的永久登陆动态网站的令牌。
其中,本步骤可以如图4所示,动态网站直播系统作为资源请求方先向动态网站的授权服务器发送授权信息,以请求获取访问令牌,等待授权服务器验证授权信息后,再接收授权服务器发放的令牌。
步骤204:为每个令牌分配一个爬虫机器人。
可以理解的是,每个爬虫机器人均拥有一个不同的令牌。
步骤205:为每个预设用户分配预设数量的爬虫机器人。
其中,本步骤中预设数量可以由设计人员根据实用场景和用户需求自行设置,如需要爬虫机器人在新浪微博中爬取微博数据,则可以为每个需要爬取微博的大v账号分配20个爬虫机器人,以确保可以避免新浪微博对单个爬虫机器人爬取频率的限制的基础上,实时对该大v账号的最新微博进行爬取,降低对该大v账号直播的延迟。本实施例对此不受任何限制。
步骤206:每个预设用户对应的爬虫机器人依次在各自的预设时间内获取当前最新数据,并将当前最新数据存储至数据库。
可以理解的是,对于每个预设用户对应的预设数量的爬虫机器人对该预设用户的当前最新数据的获取方式,可以如本步骤所示预设数量的爬虫机器人按预先设置的顺序依次在各自的安全爬取时间内对该预设用户的当前最新数据的进行获取;也可以使用其他获取方式,如每个预设用户对应的预设数量的爬虫机器人依次按预设的时间间隔对该预设用户的当前最新数据的进行获取。只要预设数量的爬虫机器人在不被动态网站限制访问的基础上,对该预设用户的当前最新数据进行获取,对于每个预设用户对应的预设数量的爬虫机器人对该预设用户的当前最新数据的获取方式,本实施例不做任何限制。
需要说明的是,本步骤可以如4所示,动态网站直播系统作为资源请求方,通过具有访问令牌的爬虫机器人从动态网站的资源服务器获取目标资源,也就是预设用户的当前最新数据。
具体的,爬虫机器人获取的预设用户对应的数据可以为当前最新数据,如新浪微博中需要爬取微博的大v账号的当前最新的微博;也可以为预设用户更新的最新数据,如预设数量的爬虫机器人只获取一个新浪微博中需要爬取微博的大v账号的更新的最新微博,也就是只要有一个爬虫机器人获取并存储最新微博后,其他爬虫机器人不再获取并存储该最新微博。本实施例对此不做任何限制。
步骤207:对数据库中存储的当前最新数据进行监控,获取预设用户更新的最新数据,并将最新数据发送至预设的直播平台。
其中,本步骤中对数据库中存储的当前最新数据进行监控,获取预设用户更新的最新数据,可以如图5所示,动态网站直播系统的监控器模块通过webservice提供的数据接口,不断轮询数据库,查询数据库中存储的当前最新数据是否存在预设用户更新的最新数据,若存在,则返回最新数据。对于该数据接口的设计可以采用采用restful技术,由于应用的每一次对数据库的操作都可以看做是对数据服务的一次请求,为此,可以将对每一种类型的数据操作映射为http协议中的相应的数据请求模式,利用简单明了的url来实现对数据的操作。本实施例对此不做任何限制。
可以理解的是,对于将最新数据发送至预设的直播平台的具体方式,可以由设计人员根据预设的直播平台的类型对应设置,如预设的直播平台为预先建立的qq群和微信群,则可以利用脚本程序模拟键盘操作,自动将最新数据发布到群内,实现直播。本实施例对此不做任何限制。
步骤208:通过固定平台网站根据预设指标对每个预设用户对应的全部最新数据进行统计并展示统计结果。
其中,本步骤可以为对全部预设用户的最新数据进行统计并展示统计结果,也可以对全部预设用户中的一个或几个预设用户的最新数据进行统计并展示统计结果,本实施例对此不受任何限制。
可以理解的是,对于根据预设指标对每个预设用户对应的全部最新数据进行统计的具体方式,可以由实际人员根据实用场景和用户需求自行设置,如对微浪微博中股市大v的直播的全部微博中的仓位信息进行统计,获取仓位变化的曲线图,并将该曲线图在一个固定平台网站进行展示。
本实施例中,本发明实施例通过为每个预设用户分配预设数量的爬虫机器人,每个预设用户对应的爬虫机器人依次在各自的预设时间内获取当前最新数据,并将当前最新数据存储至数据库,可以有效地避免如新浪微博的动态网站对爬虫机器人爬取频率的限制,提高了直播的实时性;通过固定平台网站根据预设指标对每个预设用户对应的全部最新数据进行统计并展示统计结果,可以利用平台网站对以往直播的数据进行相关的统计,提高了用户体验。
请参考图6,图6为本发明实施例所提供的一种动态网站的直播系统的结构图。该系统可以包括:
访问授权模块100,用于根据动态网站中选定用户的授权信息,获取所述授权信息对应的永久登陆所述动态网站的令牌;其中,所述授权信息包括对应的选定用户登陆动态网站的登录信息;
数据获取模块200,用于为每个所述令牌分配一个爬虫机器人,利用所述爬虫机器人获取所述动态网站的预设用户的当前最新数据,并将所述当前最新数据存储至数据库300;
所述数据库300,用于存储每个所述预设用户对应的所述当前最新数据;
监听器模块400,用于对所述数据库300中存储的所述当前最新数据进行监控,获取所述预设用户更新的最新数据,并将所述最新数据发送至预设的直播平台。
可选的,所述访问授权模块100,可以包括:
令牌获取单元,用于根据所述授权信息,通过oauth2.0协议模拟用户获取所述授权信息对应的永久登陆所述动态网站的令牌。
可选的,所述访问授权模块100,可以包括:
发送单元,用于向所述选定用户发送获取所述授权信息的授权请求;
接收单元,用于获取所述选定用户返回的所述授权信息。
可选的,所述数据获取模块200,可以包括:
分配单元,用于为每个所述预设用户分配预设数量的所述爬虫机器人;
获取单元,用于每个所述预设用户对应的爬虫机器人依次在各自的预设时间内获取所述当前最新数据。
可选的,该系统还可以包括:
统计模块,用于通过固定平台网站根据预设指标对每个所述预设用户对应的全部所述最新数据进行统计并展示统计结果。
本实施例中,本发明实施例通过访问授权模块100根据动态网站中选定用户的授权信息,获取授权信息对应的永久登陆动态网站的令牌,可以使爬虫机器人通过令牌永久登陆动态网站,解决了动态网站对爬虫机器人的访问限制,通过数据获取模块200为每个令牌分配一个爬虫机器人,利用爬虫机器人获取动态网站的预设用户的当前最新数据,可以使用多个爬虫机器人对动态网站的预设用户的当前最新数据进行抓取,有效的避免了如新浪微博的动态网站对爬虫机器人爬取频率的限制,提高了直播的实时性,提升了用户体验。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的动态网站的直播方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。