爬虫是别人写好的一个程序或者脚本。这个脚本可以像人类一样去点击浏览各种网站,获取目标网站的数据,然后按照的相应的格式将数据存储起来。你可以将爬虫想象为一只小蚂蚁,这只蚂蚁会按照你想法去你想去的地方,找到你想要的东西,然后再把东西给你背回来。
我们可以使用C、Java、Python等其他变成语言来编写爬虫。编程语言只是工具,获取到想要的数据才是我们的目的。这里推荐使用Python来写,因为Python上手简单,而且有许多好用的第三方库可以用来编写爬虫。
爬虫就是一把双刃剑,用的好可以获取到我们想要的数据,用不好的话这把剑可能会伤到我们自己,搞不好还要进去吃免费午餐。
像上面说的,我们将爬虫看成是一只小蚂蚁去找我们想要的东西,那当蚂蚁很多时,成千上百万只蚂蚁出动,那将会造成无法挽回的灾难。所以我们将爬虫爬虫分为善意爬虫和恶意爬虫。
保持一颗敬畏的心,在使用爬虫爬取数据时避免干扰到网站的正常运行,发现涉及到用户隐私和商业机密等敏感内容时,一定要及时终止爬取和传播。
爬虫和反爬虫你可以将它们看做矛与盾的关系,爬虫某种意义上来说是攻击行为,而反爬虫就是防御行为。为了避免被恶意爬虫爬取数据,许多网站都制定了相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。
为了告诉善意爬虫哪些数据能爬,哪些数据不能爬。许多网站都在网站的根目录下存放了一个Robots协议,也叫作爬虫协议。当我们爬取网站时要遵守该网站的Robots协议,否则可能会带来隐藏的法律风险。那如何查看这个Robots协议呢?
例如,百度的网址是 http://www.baidu.com,那百度的 Robots 协议就在 http://www.baidu.com/robots.txt 这个目录下。依此类推,其他网站也一样,例如:
Bilibili: https://www.bilibili.com/robots.txt
知乎:https://www.zhihu.com/robots.txt
现在你已经知道了Robots协议,那么这个协议里面的内容是什么意思?
可以移步某大佬的文章:https://www.jianshu.com/p/d16076661d40