爬虫如风,常伴吾身……
在日常的折腾中,无论是我的网站被人爬,还是别人的网站被我爬,这像是一个博弈的过程。双方在“隐形条约”下完成自己的任务,正所谓君子之交淡如水,我不知道他是谁,他也不知道我是谁,我们互相为对方提供所需要的信息。或许这种关系更像是江湖,纯粹的江湖,不讲莺莺燕燕和人情世故。只讲轻舟江上对饮,竹林剑鸣,点到为止。而后双方收剑而去,更不会有人啰嗦着问一句:“来将何人?报上名来。”
爬虫中重要的一环就是数据处理。虽然静态加载的网页结构千差万别,界面看起来也各有特色,但爬取到的数据是单一的,都是DOM结构“子孙”。即使明白筛选数据的本质就是处理字符串,但其中的处理办法也层出不穷。以下根据不同的网页风格,对症下药。
一:“好孩子”式网页
特点:有完整的DOM结构,虽然有的时候采用“乱七八糟”的编码,如:gb2312等,但它的本质还是个“好孩子”。
示例网址:百度搜索风云榜 http://top.baidu.com/buzz?b=1
分析:查看源码可以简单的看出风云榜的新闻格式均为
的子节点,而我们需要的部分正是的子节点 标签。且a标签的属性class为“list-title”。像这种网页是典型的“好孩子”网页,有良好的可视的DOM结构,所需要的信息都来自相同的结构,解析的时候不用费很大的劲。
解析办法