一个爬虫的故事:这是人干的事儿?

爬虫原理我是一个爬虫 , 每天穿行于互联网之上 , 爬取我需要的一切 。
一个爬虫的故事:这是人干的事儿?文章插图
说起来还要感谢HTTP协议 , 因为它 , 全世界的网站和浏览器才能够连接通信 , 而我也是借助HTTP协议 , 获取我想要的数据 。
我只需要伪装成一个浏览器 , 向服务器发送HTTP请求 , 就能拿到网页HTML文件 。
接着 , 我再按照HTML的格式规范 , 去解析其中的图片
一个爬虫的故事:这是人干的事儿?文章插图
获取链接标签以后 , 我又可以进一步爬取链接背后的网页 , 如此反复 , 要不了多久 , 一个网站中暴露出来的内容我就能爬个干净 。
当然了 , 咱们做爬虫也还是有底线的 。 干我们这一行 , 有一个约定俗成的规定 , 那就是Robots协议 。
只要你在网站的根目录下放置一个叫robots.txt的文件 , 里面写上哪些目录禁止访问 , 我就会绕道而行 , 就像这样:
【一个爬虫的故事:这是人干的事儿?】User-agent: *
Disallow: /a/
Disallow: /b/
Disallow: /c/
就像程序员们经常互相鄙视一样 , 在咱们爬虫的圈子里 , 也存在鄙视链 。
地位最高的要数搜索引擎的爬虫了 , 他们高高在上 , 正大光明的爬 , 各个网站欢迎还来不及 , 都想被他们收录到搜索引擎之中 , 给网站带来流量 。 这些爬虫 , 都是圈子里的大佬 , 我们惹不起 。
一个爬虫的故事:这是人干的事儿?文章插图
另外有一些爬虫 , 他们有的不遵守robots协议 , 随意乱爬 , 有的一天天的净知道爬美女图片 , 把人家服务器爬崩溃了 , 这些爬虫我们也是看不起的 。
像我这样老实本分的爬虫 , 平日的工作就是爬取一些网站的数据 , 像购物网站、点评网站等等 。 虽然我们很守规矩 , 但这些个网站还是很不待见我们 , 为了拿到数据 , 我们展开了旷日持久的拉锯战 。
一个爬虫的故事:这是人干的事儿?文章插图
反爬虫技术现在很多网站都上云了 , 云上的资源可昂贵了 , CPU、内存、存储这些都价格不菲 , 尤其是网络带宽 , 价格是真心贵 。
一个爬虫的故事:这是人干的事儿?文章插图
那些网站不待见咱们这些爬虫也就可以理解了 , 我们不像搜索引擎爬虫可以给他们带来好处 , 相反 , 还会消耗他们的服务器性能 , 花掉他们宝贵的流量 , 那可是白花花的人民币 , 谁不心疼啊?
所以这些网站加了一个措施:一旦在HTTP请求中的user-agent字段发现这是一个爬虫 , 那就不搭理我们了 。
一个爬虫的故事:这是人干的事儿?文章插图
这个user-agent是HTTP协议中表示客户端名字的字段 , 那个时候我刚刚入行 , 没什么经验 , 不懂得伪装 , 很容易就被发现 。
为了能够继续爬数据 , 我只好改头换面 , 伪装成了浏览器的名字 , 圈子里有的兄弟还伪装成了搜索引擎爬虫的名字 , 我可不像他们那样没下线 。
这一招管用了没多久 , 这些网站就升级了策略 , 通过我们的行为来识别是不是真的浏览器 。 我们毕竟是程序 , 那速度比人类点击快多了 , 网站一旦发现我们短时间内发起了很多请求 , 那就掐断连接 。
我只好降低爬取的频率 , 避免被拉入黑名单 。
有些网站更狠 , 在网页里面插入一些假的图片 , 只有几个像素那种 , 人类的眼睛是看不见的 , 但是我们不知道啊 , 对我来说都是
一个爬虫的故事:这是人干的事儿?文章插图


推荐阅读