为了我心中的女神,我竟然转行做了程序员

1


大三那年,我因迷恋上了岛国某小姐姐,曾一度茶饭不思。那会儿我还没有女朋友,连做梦想的都是她。我想再也找不到颜值和演技都双双在线的小姐姐了。

我到处搜索她的图片和海报,为的是让手机壁纸能 365 天,天天不重样。不要笑我,谁还没年少过。因为找高清图片资源真的很耗费精力,那段时间我经常顶着黑眼圈去上课。

咦?说到这,你是不是误会了?不好意思我说的是这位小姐姐,我的女神新垣结衣。是给我很多正能量的人呢!

640?wx_fmt=gif

后来去上公共课,我遇到了我的高中同学。他走过来煞有介事地问道:“看你最近无精打采的,甚至还有些消瘦。兄弟,你是不是吸毒了?”我瞪大眼睛说:“去.......去你的!谁吸毒了。”

他窃笑:“那是被微积分折磨的?”于是,我告诉了他我的神秘计划。他听后除了嘲笑我笨,还问我为啥不找他帮忙,他说他可以分分钟搞定这件事。我半信半疑,心想:“能不能别吹了。”

于是我第一次听到这个词——爬虫。

2


说来好笑,第一次听这个名字以为是昆虫的那个爬虫,没想到却是一种“自动化浏览网络”的程序。我可真是孤陋寡闻啊!听说互联网上有百分之五十以上的流量来自于它。而且有些网页的点击率并非来源于人类,而是源于爬虫。

曾经有人说:“你不知道屏幕背后坐着的是一个人还是一只喵。”可能现在要说:“你永远不知道互联网上的那只脚印是人留下的还是一只虫。”

现在大家对爬虫这个词早就已经不陌生了。爬虫技术在生活中的应用也越来越广泛了。在尊重规范的前提下,你可以爬取任何你感兴趣的数据,然后将它们汇总进行分析,最终让数据为你所用。

比如,你可以爬下某乎 12 万用户的头像,然后把长得像的头像放一起,收集知友们的点击,这样就能预测出大家最喜欢的人长什么样子了。大概长这个样子。

640?wx_fmt=jpeg

然后根据点击训练出一个带逛机器人,还可以自动识别美女:

640?wx_fmt=jpeg

(爬虫项目创建者知乎@grapeot)

是不是很赞?一下子爬到这么多美女,感觉离我找到对象不远了呢。

使用 Scrapy,还可以爬取豆瓣高评分电影,这样可以有效过滤烂片,提高观影体验。

640?wx_fmt=png

哎呀呀!好想给豆瓣友邻小姐姐的每条广播都点个赞。能不能追到小姐姐就靠爬虫了。有时候公司需要我抓取用户的信息分析他们的喜好,这样能够为用户推荐他们需要的产品。就在最近,我用我不多的积蓄买了点理财产品,我写了一个爬虫来监控理财产品的走势,决定何时买入还是卖出。是不是觉得给我一个爬虫,我能翘起整个世界呢!当然还是要提醒大家,要合理使用爬来的数据,违背规则的事情我们还是要坚决杜绝的。

3

“美味的汤,绿色的浓汤,

在热气腾腾的盖碗里装!
谁不愿意尝一尝,这样的好汤?
晚餐用的汤,美味的汤!”

这是《爱丽丝梦游仙境》里的一首诗歌,同样也是 BeautifulSoup 库名字的来源。这美味的汤,就像仙境中的魔法一样,可以化平淡为神奇。喝过这碗汤,也算入门爬虫了。

但是要真正入门爬虫,还要做很多知识上的准备。除了要熟悉 Python 以外,HTTP 的基本原理、JavaScript 的相关内容都要了解。为了应对之后会遇到的验证码,深度学习和一些密码学的相关原理也是很必要的。

接下来你要面对的是 Urllib 了,要了解这个库的基本以及高级使用方法。URLError 的异常处理、Cookie 的使用以及正则表达式,都是这个入门初期需要掌握的内容。

在你爬取数据之前,还要储备几个开发利器。Beautiful Soup、Requests 库的用法。还有 Selenium、PhantomJS 以及 PyQuery 的用法。oh 对了,差点忘了 Xpath 语法与 lxmlx 库的用法同样需要掌握。

感觉差不多了,我们可以开始实践了。等等!顺便带上这个爬虫框架吧!有备无患。它就是 Scrapy。

Scrapy 可以说是网络爬虫开发中一个最好的框架了。写网络爬虫的一个挑战是经常需要重复同样的任务:找出网页中的所有链接,评估内链与外链的差异,再跳转到新的网页。虽然掌握这些基本模式很有用,也便于从零开始创建爬虫,但是 Scrapy 可以帮你搞定里面的诸多细节。

当然,Scrapy 并不能揣测我们的心思。所以,我们还是需要定义网页模板,告诉它开始抓取的位置,从而找到要找的网页定义 URL 模式。但是在这些场景中,它都提供了一个整洁的框架来帮你组织代码。

呐!做好这些准备工作后,我们差不多可以开始实战了。你可以先从爬取女神的图片开始自己的爬虫旅程。或者爬爬百度贴吧里有趣的帖子。实在不行还可以用 Selenium 抓取阿里旺旺的昵称。反正好多有趣又好玩的事情等着你来做呢。

4

大数据时代,很多公司通过使用网络爬虫来采集公开信息。这样也面临一个是否合法的问题。其实我们身边的网络已经爬满了各种网络爬虫。他们不都是善意的,所以,作为一个爬虫工程师也要清楚哪些可以爬,哪些不可以爬。

640?wx_fmt=jpeg

2010 年,软件工程师 Pete Warden 构建了一个网络爬虫来从 Facebook 上收集数据。他一共收集了大约两亿名 Facebook 用户的用户名、位置、好友和兴趣爱好等信息。当然,Facebook 发现了这一行为,并给他发了一封勒令停止通知函,他照做了。有人问他为什么要依从 Facebook 的要求,他说:“大数据虽然很便宜,但律师费可不便宜。”

而在我国,就发生过数起因为不合规操作,导致巨额赔偿的案例。2014年,百度诉讼 360 违反 Robots 协议,被判罚款 70 万元。2016 年,大众点评起诉百度,在未经允许的情况下,百度在百度地图、百度知道中大量抄袭、复制大众点评网点评信息,直接替代了大众点评网向用户提供内容,并被判 300 万元。

所以,在使用爬虫的时候一定要遵守这些规范,严格遵守 Robots 协议。如果人家在协议中声明了不准爬取网页信息,比如淘宝网,那么就一定不要违反反扒意愿。也不要因为爬虫的使用,干扰了被访问网站的正常使用。更不要抓取受到法律保护的特定类型的信息。在爬取信息的时候,应当审查信息的内容,如果涉及到个人隐私或者商议机密,一定要停止并且删除。

嘻嘻!你是不是觉得奇怪,怎么一个连女神图片都不会爬的人会知道这些。其实正因为我收集女神的照片,才误打误撞地入了爬虫的。现在已经成长为一名爬虫工程师了。如果按照我以前的专业,现在可能在某商场修......修手机吧。所以,我说新垣结衣是给我很多正能量的人呢!如果你也想入门爬虫,做更多有意义的事情,那不如从这两本书开始旅程吧!

640?wx_fmt=png

从数据爬取到数据清洗全流程的系统实践指南

640?wx_fmt=png

扫一扫,京东购

《Python网络爬虫权威指南(第2版)》

作者:瑞安·米切尔
译者:神烦小宝

本书采用强大简洁的 Python 语言,介绍了网页抓取。第一部分重点介绍网页抓取的基本原理:如何用 Python 从网络服务器请求信息,如何对服务器的响应进行基本处理,以及如何以自动化手段与网站进行交互。第二部分介绍如何用网络爬虫测试网站,自动化处理,以及如何通过更多的方式接入网络。

640?wx_fmt=png

最受欢迎的网络爬虫书

640?wx_fmt=png

扫一扫,京东购

《Python 3网络爬虫开发实战》

作者:崔庆才

本书介绍了如何利用 Python 3 开发网络爬虫,书中首先详细介绍了环境配置过程和爬虫基础知识,然后讨论了 urllib、requests 等请求库和 Beautiful Soup、XPath、pyquery 等解析库以及文本和各类数据库的存储方法,接着通过多个案例介绍了分析 Ajax 进行数据爬取,Selenium 和 Splash 进行动态网站爬取的过程,接着介绍了爬虫的一些技巧,如使用代理爬取和维护动态代理池的方法,ADSL 拨号代理的使用,图形、极验、点触、宫格等各类验证码的破解方法,模拟登录网站爬取的方法及 Cookies 池的维护。

更多爬虫相关内容,可以关注作者博客:https://cuiqingcai.com/

文末畅聊

正在使用爬虫的小伙伴快来说说,你都用爬虫做过哪些有意思的事情。也可以安利一些好用的爬虫小技巧给大家。没接触过爬虫的来说说,如果你学了爬虫,准备用来做点啥?活动截至2019.5.27。精选留言选出5位获得赠书。

题图来源:Freepik.com

推荐阅读:

识骨寻踪:少年,我看你骨骼清奇,不如来看看这本书。

世界上最百变的人不是女友,竟然是......

5月书讯 // 你是人间的四月天!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
04-22 12

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值