一般我会回答,我用专门的工具,无需编程也能快速抓取。之后肯定又会被问,在哪里能下载这个工具呢?
我淡淡的说,我自己写的。。。
沙漠君最近比较忙乱,说好的一大堆写作任务都还没有完成。
授人以鱼不如授人以渔,我做了一个决定,将这套软件全部开源到GitHub !
这篇文章介绍爬虫大概的原理,文末会有程序地址。
爬虫的原理很简单,我们在访问网页时,会点击翻页按钮和超链接,浏览器会帮我们请求所有的资源和图片。所以,你可以设计一个程序,能够模拟人在浏览器上的操作,让网站误认为爬虫是正常访问者,它就会把所需的数据乖乖送回来。
爬虫分为两种,一种像百度(黑)那样什么都抓的搜索引擎爬虫。另一种就是沙漠君开发的,只精确地抓取所需的内容:比如我只要二手房信息,旁边的广告和新闻一律不要。
下面是沙漠君亲自操刀,使用Hawk抓取二手房的视频:
人当然可以很容易地看出,上图的红框是二手房信息,但机器不知道。
网页是一种有结构的树,而重要信息所在的节点,往往枝繁叶茂。 举个不恰当的比方,一大家子人构成树状族谱,谁最厉害?当然是:
孩子多,最好一生20个
孩子各个都很争气(生的孙子多)
最好每个孩子还都很像(清一色的一米八)
大家就会觉得这一家子太厉害了!
我们对整个树结构进行打分,自然就能找到那个最牛的节点,就是我们要的表格。找到最牛爸爸之后,儿子们虽然相似:个子高,长得帅,两条胳膊两条腿,但这些都是共性,没有信息量,我们关心的是特性。大儿子锥子脸,跟其他人都不一样,那脸蛋就是重要信息;三儿子最有钱——钱也是我们关心的。 因此,对比儿子们的不同属性,我们就能知道哪些信息是重要的了。
(听不懂吧?听不懂正常, 不要在意这些细节!总之你知道这是沙漠君设计的就好了)
这也难不倒我们,每页有30个数据,100页最多能呈现3000条数据。北京有16个区县两万个小区,但每个区的小区数量就没有3000个了,我们可分别获取每个区的小区列表。每个小区最多有300多套在售二手房,这样就能获取链家的所有二手房了。
哈哈哈,是不是被沙漠君的机智所倾倒了?然后我们启动抓取器,Hawk就会给每个子线程(可以理解为机器人)分配任务:给我抓取这个小区的所有二手房! 然后你就会看到壮观的场面:一堆小机器人,同心协力地从网站上搬数据,超牛迅雷有没有?同时100个任务!!上个厕所回来就抓完了!!!
发现面积那一列的乱码,自动去掉
识别价格,并把所有的价格都转换为万元单位
发现美元,转换为人民币
发现日期,比如2014.12或2014年12.31,都能转换为2014年12月31日
哈哈,然后你就能够轻松地把这些数据拿去作分析了,纯净无污染!
此处的意思当然不是去破解用户名密码,沙漠君还没强到那个程度。 有些网站的数据,都需要登录才能访问。这也难不倒我们。
当你开启了Hawk内置了嗅探功能时,Hawk就像一个录音机一样,会记录你对目标网站的访问操作。之后它就会将其重放出来,从而实现自动登录。
理论上是的。但道高一尺魔高一丈,不同的网站千差万别,对抗爬虫的技术也有很多种。而且小虫虫对细节非常敏感,只要错一点,后面的步骤就可能进行不下去了。
怎么办呢?沙漠君把之前的操作保存并分享出来,你只要加载这些文件就能快速获取数据了。
如果你有其他网站的获取需求,可以去找你身边的程序员同学,让他们来帮忙抓数据,或让他们来试试Hawk,看看谁的效率更高。
有任何问题,欢迎在后台留言。
沙漠之鹰"个人公众号,所有文章全部原创。任何形式的转载,演绎,必须经过公众号联系原作者获得授权,保留一切权利。
欢迎关注"沙漠之鹰",历史文章有《租房数据分析》,《北京购房攻略》《帮女神学姐选婚房》和《微博数据挖掘》等。以理性视角,分析数据,解构模式,发现洞见。