爬虫聚焦——以新浪微博为例
网络爬虫是实现网页数据获取的一般方法,并且需要先成功模拟微博登陆后,再进入设定好的入口URL 地址,将网页内容按某种策略以文本形式存于某存储系统中, 同时抓取网页中其他的可用来作为二级爬行入口的有效地址, 直到满足已定抓取条件或抓取结束后爬虫程序停止。但是,由于网页是通过HTML语言标记元素的,所以在获取网页信息时候需针对数据的不同标签分别进行抓取。这一获取方法实现的前提是需要先登陆微博,只有在登陆成功之后网页的相应cookie值才会被保存下来,但是,由于微博平台的相关设置,一般的网络爬虫获取数据的限制很大,所以如何取得微博网站的“信任”也是一大重要问题。同时,由于微博数据形式的多样化,包含文本、表情、超链接、地理位置、用户关系等,这也增加了获取数据的难度。除此之外,微博爬虫程序存在一个效率较低的问题,同时这种方式获取的数据往往是杂乱的,因此如何规范获取数据和提高爬取效率又是另一大问题。所以说,“爬虫”,懂了都简单,刚入门还是要好好花点心思的哦。
一、知彼
在研究微博数据的获取方法之前,需要先了解微博页面的信息架构,明确我们需要获取的数据在网页上的呈现形式,然后分析网页的源代码和网页数据流情况,确定微博界面解析和页面数据获取的必要技术手段,这样,才能更好的发现待解决的问题并提出解决方案。
如果想要分析面向特定话题的微博页面(话题主页和评论页),其信息结构如下(这里博主随意选了“和颐酒店女生遇袭”话题页面来分析): 关于面向特定话题的微博发帖界面,如图所示,微博话题主页界面有非常清晰地区块划分,除去那些与话题内容无关的价值信息无关的模块之后,主要分为标题栏、发帖栏、话题主持人栏和最新参与用户栏,其中发帖栏可分为主持人推荐栏和热门评论或者时评团栏两大区块,而热门评论或者时评团栏实际上却是由3个15条帖子模块组成,每15条帖子模块的地址都不一样,这是微博所独有的页面结构特点,果然也对页面信息数据的获取增加了一定的难度。然后,话题页面的最下方是可以跳转第几页或者点击下一页的翻页模块。 关于特定话题的微博数据还包括对于重点帖的评论,如图所示,如“和颐酒店遇袭”事件,对于这一社会话题而言,最开始是由某微博用户自己发起的,所以最开始大多网络用户都是对话题发起者的发帖进行评论的,这些评论信息是对于该话题的重要信息来源,因此,评论信息也是对微博数据研究的重要方面。 综上所述,从技术层面来看,这些模块都是使用基于CSS技术的代码来实现,模块之间的区分是通过
这样的标识来分割,因此模块之间都是有清晰地分界,便于我们来分析整个微博页面的结构。









