将网络爬虫应用到生活 一切也都变得有趣起来~

ImageQ大数据2020-09-14 12:41:45


本文共计

2759

读完大约

5

分钟


前段时间我们推过一篇文章,讲到了数据获取的一些方式,其中就提起过「网络爬虫」(具体戳《想做数据分析?这些神奇的数据获取方式你可知道?》)。那么「网络爬虫」到底是什么?利用它我们又能做些什么呢?




ding

yi

网·络·爬·虫

网络爬虫:

网络蜘蛛(Web spider)也叫网络爬虫(Web crawler),蚂蚁(ant),自动检索工具(automatic indexer),或者(在FOAF软件概念中)网络疾走(WEB scutter),是一种“自动化浏览网络”的程序,或者说是一种网络机器人。



它们被广泛用于互联网搜索引擎或其他类似网站,以获取或更新这些网站的内容和检索方式。它们可以自动采集所有其能够访问到的页面内容,以供搜索引擎做进一步处理(分检整理下载的页面),而使得用户能更快的检索到他们需要的信息。


网络爬虫始于一张被称作种子的统一资源地址(URLs)列表。当网络爬虫访问这些统一资源定位器时,它们会甄别出页面上所有的超链接,并将它们写入一张"待访列表",即所谓"爬行疆域"(crawl frontier)。此疆域上的统一资源地址将被按照一套策略循环访问。


如果爬虫在他执行的过程中复制归档和保存网站上的信息,这些档案通常储存,使他们可以被查看。阅读和浏览他们的网站上实时更新的信息,并保存为网站的“快照”。


大容量的体积意味着网络爬虫只能在给定时间内下载有限数量的网页,所以要优先考虑其下载。高变化率意味着网页可能已经被更新或者删除。一些被服务器端软件生成的URLs(统一资源定位符)也使得网络爬虫很难避免检索到重复内容。


---Wikipadia对网络爬虫的定义

其实,简单来说,「网络爬虫」就是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。




利用爬虫我们可以获取大量的价值数据,从而获得感性认识中不能得到的信息。


光是听起来就很有意思,那利用它能做些什么有意思的事儿呢?我们找来了部分从业者的回答,一起来感受一下吧~




ying

yong

好·玩·有·趣


@森羴

在用 Python 写网页爬虫之前,我只用来写过了一个驾校约车的脚本,让当时的我不惧上万的学车同僚,在约车环节没有输在起跑线上。


接着那段时间,我女朋友的领导每天下班都会下任务,要收集 100 条有招聘需求的信息,第二天检查。看到她熬夜百度+复制粘贴到半夜,心疼死了。


想到了某个牛人说:一切重复性的工作都可以用程序来完成。于是偷偷花了些时间研究了下她经常查的某些同类业务网站的页面数据,培育了这只爬虫。主要技能就是爬这些网站的招聘公司信息及联系方式,保存到Excel中。


在我将战斗成果----1000 多个客户资料的 Excel 表格发给她的时候,先惊喜,后审问,再感慨!依稀记得那天她发了一条朋友圈,内容是:“有个程序员男朋友,感觉好幸福啊!!”成就感走直线啊,都能让她感到幸福,你说这只爬虫是不是做了很酷很有趣的事情呢?


@冰蓝

之前在北京买房,谁想房价开始疯长,链家的房价等数据分析只给了一小部分,远远不能满足自己的需求。于是晚上花了几个小时的时间写了个爬虫,爬下了北京所有的小区信息及北京所有小区的所有历史成交记录。


@柳易寒

我用爬虫爬了我爱白菜网、超值分享汇、发现值得买、惠惠购物、今日聚超值、留住你、买手党、没得比、慢慢买、牛杂网、买个便宜货、什么值得买、天上掉馅饼、一分网、折 800 值得买、值值值等网站的折扣信息。


这些网站都是提供的一些及时的、性价比较高的商品,很多时候要一个一个网站的看(重度用户),很容易就会错过一些很划算的商品。


@陈乐群

上次发现 Android QQ 和 iOS QQ 可以显示网络状态(2G/WiFi)之后,突然想到,这样子好像可以监视某人的出行和作息规律。简单的来说,在家里或者工作的地方,一般是有WiFi的,然后出门了,WiFi就断掉了。如果监测频率足够频繁,那么结合一定的推理,可以大致推测出一个人的行动。如果长期监视,那么可以大致推出一个人的作息时间。


因为只有 Android QQ 和 iOS QQ 有这个功能,所以要得到一个人的网络状态比较麻烦。我的做法是跑 Android 模拟器。然后用按键精灵模拟,并把网络状态截图,用 curl post 到服务器上。服务器会把每次发送的时间、截图保存下来。


因为是用程序截图的,所以只要网络状态是一样的,那么截图就是一样的,这样服务器就只会保存 2 ~ 3 张图片而已,其余的发现是相同的图片,数据库做个标记就好了。然后人工做 OCR,还是注意到只有 2 ~ 3 张图片,所以工作量很少。


得到数据后,要做各种统计就可以自己搞了……


@晨晨

朋友交易了一套房子,手机号流落到了各种中介手里,隔几天就有中介电话骚扰,不胜其烦。每接一个电话都加黑名单,但还是有新号码打过来,so⋯⋯问我咋办!


Android 手机的拦截倒不是问题,但需要房产经纪人的号码数据库,就只能去网上爬了!


各个房产站的广州站点加上 58 什么的,一个多小时爬了快 2w 个号码,去重之后还有一万五千多⋯⋯


一时兴起,又去爬了深圳、北京和上海,现在都不知道拿这些号码去干嘛了⋯⋯


PS:貌似活跃房产经纪的数量能反应市场活跃度?

PS:我觉得我可以把全国城市的都爬下来。


@余生梦

说个简单实用的例子吧。昨晚突然发现我在某培训网站的的会员马上就要过期了,于是赶紧写了个爬虫,把没看完的教学视频全下载下来了……


@小白

大二学生一枚,前段时间中期考试,成绩一直不出来,又不想每次都登录,突然就像用以下所学的东西来干点事情。


说干就干,花了我将近 4 个小时完成成绩提醒功能。主要是用 Python 定时抓取数据(定时用 Ubuntu 的 crontab),分析数据是否变化,然后发送短信。其实大部分时间是花在分析学校模拟登陆那一块了,毕竟要提取各种值,还有 url 重定向,本来就才学 Python,对一些东西也不是很熟悉。


运行起来之后还是效果还不错,10 分钟抓一次,第一时间知道了我的概率论。。。


@顾旻玮

在学校的时候做过一个项目,通过爬微博的文字,分析国内各个地区的用户收听虾米的热度和最受欢迎的歌手。当然也没有用什么很复杂的技术,就是写基本的 TF-IDF。


做完的时候觉得自己好有想法啊,能实现这么有意思的东西。后来发现早就有公司做过了。当然别人做的是美国版的。


于是现在,我就在这家公司工作。


@ animalize

用爬虫技术做了个个人信息收集系统,部署在卡片式电脑(如树莓派、Cubieboard)上。


人们上各种网站浏览感兴趣的内容,如果一个个打开看,太浪费时间。如果不去看,又会错过很多感兴趣的内容,很可惜。这个东西呢,定时去获取用户感兴趣的信息,并通过 web 的方式展示出来。用户每天看一眼这个系统就可以了。(有网友说用 RSS 就可以了,可是现在提供 RSS 的网站实在不多,我这里大部分信息是从普通网页里提取的。)


@萝莉控夫斯基

我的爱人是某网络公司的销售,需要收集各种企业信息然后打电话联系。于是乎利用采集脚本抓一坨一坨的资料给她用,而她的同事天天自己搜资料整理到半夜。


@孟德超

非计算机系。所以我做的比起其他人来说要简单的多,但是却解决了一些很实用的问题,也让我认识到各行各业的人都需要学一点编程。


我一个同学做数学建模,需要 57 个城市两两之间的距离。他们本来想在百度查,可是 57 * 56 / 2 = 1596,也就是说他们光查数据就要百度 1596 次。刚好我那个时候接触了一点爬虫,就找到一个可以查询距离的网站,大概写了几十行代码,两分钟就解决问题了。



你有用爬虫做过什么有意思的事呢?

一起聊一下吧~


 -END-


*新版官网已上线 诚邀您免费体验*



你可能感兴趣的...


 你老问我NLP是什么,今天就给你最全面解析!

 
五分钟速读政府工作报告!这些信息你得知道...

 搞大数据的注意啦!这些国家标准,今年将正式实施!

 专访 | 大数据时代,如何挖掘数据「石油」的深层价值

 基于自然语言处理,让「公安侦防」从大数据中真正受益

 想做数据分析?这些神奇的数据获取方式你可知道?

回复关键词序号,获取更多干货

01 技术干货 | 02 热点事件

03 大 咖 说  | 04 往期精彩

05 产品试用 | 06 官网直达