如何从互联网采集海量数据?租房,二手房,薪酬……

优采云 发布时间: 2020-08-26 00:12

  如何从互联网采集海量数据?租房,二手房,薪酬……

  

  作者:沙漠君

  不少同学看了沙漠君的文章后,都会问:那几十万条租房,二手房,薪酬,乃至天气数据都是从那里来的?其实我还没告诉你这种数据在十几分钟内就可以采集到!

  一般我会回答,我用专门的工具,无需编程也能快速抓取。之后肯定又会被问,在那里能下载这个工具呢?

  我淡淡的说,我自己写的。。。(这个B装的...我给95分!)

  沙漠君近来比较忙乱,说好的一大堆写作任务都还没有完成。

  授人以虾不如授人以渔,我做了一个决定,将这套软件全部开源到GitHub !

  免费使用,开放源代码! 从此以后,估计好多做爬虫的工程师要待业了。。。因为我的目标是使普通人也能使用!!!目标有点远大,不过其实距离不远了(不到一光年吧)。

  这篇文章介绍爬虫大约的原理,文末会有程序地址。

  什么是爬虫?

  互联网是一张大网,采集数据的小程序可以形象地称之为爬虫或则蜘蛛。

  爬虫的原理很简单,我们在访问网页时,会点击翻页按键和超链接,浏览器会帮我们恳请所有的资源和图片。所以,你可以设计一个程序,能够模拟人在浏览器上的操作,让网站误觉得爬虫是正常访问者,它还会把所需的数据乖乖送回去。

  爬虫分为两种,一种象百度(黑)那样哪些都抓的搜索引擎爬虫。另一种就是沙漠君开发的,只精确地抓取所需的内容:比如我只要二手房信息,旁边的广告和新闻一律不要。

  爬虫这样的名子并不好听,所以我给这套软件取名为Hawk,指代为"鹰",能够精确,快速地捕捉猎物。 基本不需编程,通过图形化拖放的操作来快速设计爬虫,有点像Photoshop。它能在20分钟内编撰大众点评的爬虫(简化版只需3分钟),然后使它运行就好啦

  自动将网页导入为Excel

  那么,一个页面这么大,爬虫如何晓得我想要哪些呢?

  

  人其实可以很容易地看出,上图的红框是二手房信息,但机器不知道。

  网页是一种有结构的树,而重要信息所在的节点,往往枝繁叶茂。 举个不恰当的比方,一大伙子人构成树形世系,谁最厉害?当然是:

  大家都会认为这一家子太厉害了!

  我们对整个树结构进行打分,自然能够找到哪个最牛的节点,就是我们要的表格。找到最牛父亲以后,儿子们其实相像:个子高,长得帅,两条手指两条腿,但这种都是共性,没有信息量,我们关心的是特点。大女儿锥子脸,跟其他人都不一样,那脸部就是重要信息;三女儿最有钱——钱也是我们关心的。 因此,对比儿子们的不同属性,我们能够晓得什么信息是重要的了。

  回到网页采集这个反例,通过一套有趣的算法,给一个网页的地址,软件都会手动地把它转成Excel! (听不懂吧?听不懂正常, 不要在乎那些细节!总之你晓得这是沙漠君设计的就好了)

  破解翻页限制

  获取了一页的数据,这还不够,我们要获取所有页面的数据!这简单,我们使程序依次地恳求第1页,第2页...数据就搜集回去了

  就那么简单吗?网站怎么可能使自己宝贵的数据被如此轻松地捉住呢?所以它只能翻到第50页或第100页。链家就是这样:

  

  这也难不倒我们,每页有30个数据,100页最多能呈现3000条数据。北京有16个区县两万个新村,但每位县的新村数目就没有3000个了,我们可分别获取每位县的新村列表。每个新村最多有300多套在售二手房,这样才能获取链家的所有二手房了。

  哈哈哈,是不是被沙漠君的机智所倾倒了?然后我们启动抓取器,Hawk都会给每位子线程(可以理解为机器人)分配任务:给我抓取这个新村的所有二手房! 然后你才会看见壮丽的场面:一堆小机器人,同心协力地从网站上搬数据,超牛迅雷有没有?同时100个任务!!上个公厕回去就抓完了!!!

  

  清洗:识别并转换内容

  获取的数据大约长这样:

  

  但你会看见,里面会有些奇怪的字符应当去去除。xx平米应当都把数字提取下来。而售价,有的是2130000元,有的是373万元,这些都很难处理。

  BUT,没关系!Hawk才能手动辨识所有的数据:

  哈哈,然后你能够够轻松地把这种数据拿去作剖析了,纯净无污染!

  破解须要登陆的网站

  此处的意思其实不是去破解用户名密码,沙漠君还没强到哪个程度。 有些网站的数据,都须要登陆能够访问。这也难不倒我们。

  当你开启了Hawk外置了嗅探功能时,Hawk如同一个录音机一样,会记录你对目标网站的访问操作。之后它还会将其重放下来,从而实现手动登入。

  你会不会害怕Hawk保存你的用户名密码?不保存如何手动登入呢?但是Hawk是开源的,所有代码都经过了审查,是安全的。你的私密信息,只会躺在你自己的硬碟里。

  

  (我们就这样手动登入了大众点评)

  是不是我也可以抓数据了?

  理论上是的。但道高一尺魔高一丈,不同的网站千差万别,对抗爬虫的技术也有很多种。而且虫子虫对细节十分敏感,只要错一点,后面的步骤就可能进行不下去了。

  怎么办呢?沙漠君把之前的操作保存并分享下来,你只要加载这种文件才能快速获取数据了。

  如果你有其他网站的获取需求,可以去找你身边的程序员朋友,让她们来帮忙抓数据,或使她们来试试Hawk,看看谁的效率更高。

  如果你是文科生姑娘,那还是建议你多看看东野奎吾和村上春树,直接上手如此复杂的软件会使你郁闷的。那该找谁帮忙抓数据呢?嘿嘿嘿...

  在哪里获取软件和教程?

  软件的最新版本早已公布在百度网盘里了,有兴趣可留言获取链接。

  via:*敏*感*词*

  End.

  文章来源36大数据, ,微信号dashuju36 ,36大数据是一个专注大数据创业、大数据技术与剖析、大数据商业与应用的网站。分享大数据的干货教程和大数据应用案例,提供大数据剖析工具和资料下载,解决大数据产业链上的创业、技术、分析、商业、应用等问题,为大数据产业链上的公司和数据行业从业人员提供支持与服务。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线