首页 历史故事网络爬虫与微博数据抓取

网络爬虫与微博数据抓取

【摘要】:微博是指一种基于用户关系信息分享、传播以及获取的通过关注机制分享简短实时信息的广播式的社交媒体、网络平台。图2.4HTTP连接原理Cookies是指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据。表2.1微博抓取规则示例每页微博数据请求到页面并完成解析后,按照抓取的逻辑与规则插入到数据库中,若Cookies数量较少时,可拟定爬虫访问频率,降低数据服务区访问压力。

网络爬虫是一种按照一定的规则,自动抓取万维网信息的程序或者脚本,主要思路是由关键字指定统一资源定位符(URL),把所有相关的网页全抓下来,形成字符串文本,然后利用相关软件包结合正则表达式进行解析,提取文本信息,最后把文本信息存储下来(周德懋等,2009)。

下面以微博数据为例,介绍爬取社交媒体数据的基本步骤。微博是指一种基于用户关系信息分享、传播以及获取的通过关注机制分享简短实时信息的广播式的社交媒体、网络平台。用户可以通过PC、手机等多种移动终端接入,以文字、图片、视频等多媒体形式,实现信息的即时分享、传播互动。微博用户端向服务器发送一个带Cookie认证的请求,服务器对网络请求进行响应,返回我们需要的数据,请求原理如图2.4所示。在第一次请求中需要向服务器提交相应的账号密码等账户信息。

图2.4 HTTP连接原理

Cookies是指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据(李强等,2011)。当客户端第一次请求服务器时,服务器会返回一个请求头中带有Set-Cookie字段的响应给客户端,用来标记是哪一个用户,浏览器会把Cookies保存起来。当浏览器下一次再请求该网站时,浏览器会把此Cookies放到请求头一起提交给服务器,Cookies携带了会话ID信息,服务器检查该Cookies即可找到对应的会话是什么,然后再判断会话,以此来辨认用户状态。在成功登录某个网站时,服务器会告诉客户端设置哪些Cookies信息,在后续访问页面时客户端会把Cookies发送给服务器,服务器再找到对应的会话加以判断。如果会话中的某些设置登录状态的变量是有效的,那就证明用户处于登录状态,此时返回登录之后才可以查看网页内容,浏览器再进行解析便可以看到了。反之,如果传给服务器的Cookies是无效的,或者会话已经过期了,将不能继续访问页面,此时可能会收到错误的响应或者跳转到登录页面重新登录。

爬虫的主要流程是获取相应的统一资源定位符(URL),利用发起页面请求,抓取页面信息后,指定采集规则并采集每一页需要的数据要素。一般地,都是通过爬取页面分析来制定抓取规则,规则见表2.1。

表2.1 微博抓取规则示例

每页微博数据请求到页面并完成解析后,按照抓取的逻辑与规则插入到数据库中,若Cookies数量较少时,可拟定爬虫访问频率,降低数据服务区访问压力。若需要快速抓取,可以考虑多开线程,提升数据采集效率。此外,还可以构建Cookie池,进行Cookie的定时更新与维护。