第一章节主要给大家普及一下爬虫的概念以及相关的知识,让大家对后面的学习打下扎实的基础。如果你是有经验的开发者,完全可以跳过第一章进入第二章的学习了。
这个项目主要围绕两大核心点展开:
1. PHP爬虫 2. 代理IP
咱们先讲讲什么是爬虫,简单来讲,爬虫就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。
而我们最常见,用的最多的爬虫就是:百度。
百度就是利用这种爬虫技术:每天放出无数爬虫到各个网站,把他们的信息抓回来,等着你去搜索。
还有各种类型的抢票软件,每一个爬虫都帮助你不断刷新 12306 网站的火车余票。一旦发现有票,就马上买下来。
随着时代的发展,人们发现并不是所有的爬虫都像百度、抢票软件这种帮助到我们的生活,也有许多非法入侵的爬虫,这些爬虫不仅帮助不到我们,甚至会让我们的许多信息泄露。
人们十分憎恨这种爬虫,于是这就诞生了另一门技术,反爬虫。
话说有一天,小明想去电影院看电影,但是不知道看哪一部电影好,于是他想从多个网站爬取一些影评来让自己更好的抉择看什么电影。于是小明写了标准的爬虫(基于HttpClient库),不断地遍历某站的电影下面的影评页面,根据 Html 分析电影名字存进自己的数据库。
但是电影网站的工作人员小红却不乐意了,你用爬虫把我们的影评爬走了,那谁还上我们网站啊,我们怎么卖广告盈利啊。小红发现某个时间段请求量陡增,分析日志发现都是 IP(X.X.X.X)这个用户,并且 useragent 还是 JavaClient1.6 ,基于这两点判断非人类后直接在Nginx 服务器上封杀。
小明发现自己的影评只爬了三分之一就被封了,于是也针对性的变换了下策略,每爬半个小时就换一个IP代理。
于是这就涉及到我们项目的第二点,代理IP了。这个词对于一些刚入门的新手们也许有点陌生,其实代理IP我们也可以理解为是一台代理服务器。
代理服务器是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器去取回网页,而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息,并传送给你的浏览器
这样,电影网站的小红就无法识别哪个IP是我们,而我们也可以顺利获取到自己想要的影评啦。(不过实际中还有更多的方法进行爬虫的攻防,这里就不一一讲述了)。