基础知识讲解部分(网络爬虫入门)
网络爬虫就是自动地从互联网上获取程序。想必你听说过这个词汇,但是又不太了解,大家会觉得掌握网络爬虫还是要花一些功夫的,因此这个门槛让你有点望而却步。我常常觉得计算机和互联网的发明给人类带来了如此大的便利,让人们不用阅读说明书就知道如何上手,但是偏偏编程的道路却又是如此艰辛。因此,我会尽可能做到浅显易懂,希望读者能够读懂我说了什么,从而能够享受到其中的快乐。
基本介绍
我是一名学生,通过学习Python网络爬虫从入门到实践(第二版)发现了其中的一些问题,这里我会一一告诉大家,我的主要目的是讲解网络爬虫的基础部分,后面会介绍几个实践。同时呢,我是第一次写博客,有什么编辑上的不完善请大佬多多指教,希望大家多多阅读我的文章,thank you very much!工欲善其事必先利其器,在学习爬虫代码之前,我们必须知道python的基础,这就好比是盖楼必须要打好地基,毕竟万丈高楼平地起啊!同时我还会介绍一下爬虫中的一些知识。
爬虫知识介绍
Robots协议
网络爬虫目前还处于早期的拾荒阶段,虽然互联网世界已经通过自身的协议建立起一定的道德规范(Robots协议),但法律部分还在建立和完善中。从目前的情况来看,如果抓取的数据属于个人使用或科研范畴,基本不存在问题;而如果数据属于商业盈利范畴,就要就事而论,有可能属于违法行为,也有可能不违法。
Robots协议(爬虫协议)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎那些页面可以抓取,哪些页面不可以抓取,该协议是国际互联网界通行的道德规范,虽然没有写入法律,但是每一个爬虫都应该遵守这项协议。
下面以淘宝网的robots.txt为例进行介绍
这里仅截取部分代码,查看完整代码可以访问https://www.taobao.com/robots.txt
User-agent: Baiduspider #百度爬虫引擎
Allow: /article #允许访问/article.htm、/article/12345.com等
Allow: /oshtml
Allow: /ershou
Allow: /$
Disallow: /product/ #禁止访问/product/12345.com
Disallow: / #禁止访问除Allow规定页面的其他所有页面
###########################################
User-Agent: Googlebot #谷歌爬虫引擎
Allow: /article #允许访问/article.htm、/article/12345.com等
Allow: /oshtml
Allow: /ershou
Allow: /spu
Allow: /dianpu
Allow: /oversea
Allow: /list
Allow: /ershou
Allow: /$
Disallow: / #禁止访问除Allow规定页面的其他所有页面
当你在百度搜索“淘宝”的时候,淘宝上不会出现二手商品信息,而在Google上搜“淘宝”的时候会出现二手商品信息呢,就是因为有上述代码,如图所示:
由于谷歌是国外的网站,使用要翻墙,所以这里不显示在谷歌上搜淘宝的图片了。
网络爬虫的约束
2016年11月7日,全国人民代表大会常务委员会在通过了《中华人民共和国网络安全法》,2017年6月1日正式实施。如果爬虫爬取的是商业网站,并且目标网站使用了反爬虫机制,那么强行突破反爬虫机制可能构成非法侵入计算机系统罪、非
法获取计算机信息系统数据罪。如果目标网站有反爬虫声明,那么对方在被爬虫爬取以后,可以根据服务器日志或者各种记录来起诉使用爬虫的公司。在道德方面,就是要遵守Robots协议。
Python爬虫流程
网络爬虫的流程非常简单,主要分为三部分:
(1)获取网页;
获取网页就是给一个网址发出请求,该网址会返回整个页面的数据。类似于在浏览器中键入网址并按回车键,然后可以看到网站的整个页面。
(2)解析网页(提取数据);
解析网页就是从整个网页的数据中提取想要看的数据。类似于在浏览器中看到网站的整个页面,但是你想找的是产品的价格,价格就是你想要的数据。
(3)存储数据。
存储数据也很容易理解,就是把数据存储下来。我们可以存储在csv中,也可以存储在数据库中。