5

Python爬虫:爬虫基础简介(1)(零基础自学)

 2 years ago
source link: https://blog.csdn.net/qq_47805483/article/details/119280947
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.



写在前面:学习Python爬虫一直都in the ToDoList,前面因为种种原因搁置,也有好一段时间没有更新博客。停滞了很长一段时间,也很久可以接触新事物。后面将会有一段很长的空闲时间,打算从小白开始学习Python爬虫,重拾CSDN。

What is Web Crawler?

  • 形象概念: 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它。
  • 学术概念:爬虫就是通过编写程序模拟浏览器上网,让其去互联网上抓取数据的过程。

爬虫合法性探究

爬虫究竟是合法还是违法的?

爬虫作为一种计算机技术就决定了它的中立性,因此爬虫本身在法律上并不被禁止,但是利用爬虫技术获取数据这一行为是具有违法甚至是犯罪的风险的。所谓具体问题具体分析,正如水果刀本身在法律上并不被禁止使用,但是用来捅人,就不被法律所容忍了。

或者我们可以这么理解:爬虫是用来批量获得网页上的公开信息的,也就是前端显示的数据信息。因此,既然本身就是公开信息,其实就像浏览器一样,浏览器解析并显示了页面内容,爬虫也是一样,只不过爬虫会批量下载而已,所以是合法的。不合法的情况就是配合爬虫,利用黑客技术攻击网站后台,窃取后台数据(比如用户数据等)。

举个例子:像谷歌这样的搜索引擎爬虫,每隔几天对全网的网页扫一遍,供大家查阅,各个被扫的网站大都很开心。这种就被定义为“善意爬虫”。但是像抢票软件这样的爬虫,对着 12306 每秒钟恨不得撸几万次,铁总并不觉得很开心,这种就被定义为“恶意爬虫”。

爬虫所带来风险主要体现在以下2个方面:

  • 爬虫干扰了被访问网站的正常运营;
  • 爬虫抓取了受到法律保护的特定类型的数据或信息。

那么作为爬虫开发者,如何在使用爬虫时避免进局子的厄运呢?

  • 严格遵守网站设置的robots协议
  • 在规避反爬虫措施的同时,需要优化自己的代码,避免干扰被访问网站的正常运行;
  • 在使用、传播抓取到的信息时,应审查所抓取的内容,如发现属于用户的个人信息、隐私或者他人的商业秘密的,应及时停止并删除。

哪些语言可以实现爬虫

  • php:可以实现爬虫。php被号称是全世界最优美的语言,但是php在实现爬虫中支持多线程和多进程方面做的不好。
  • c、c++:可以实现爬虫。但是使用这种方式实现爬虫纯粹是是某些人(大佬们)能力的体现,却不是明智和合理的选择。
  • java:可以实现爬虫。java可以非常好的处理和实现爬虫,是唯一可以与python并驾齐驱且是python的头号劲敌。但是java实现爬虫代码较为臃肿,重构成本较大。
  • python:可以实现爬虫。python实现和处理爬虫语法简单,代码优美,支持的模块繁多,学习成本低,具有非常强大的框架且一语难以言表的好!没有但是!

爬虫的分类

  • 通用爬虫:通用爬虫是搜索引擎(Baidu、Google、Yahoo等)“抓取系统”的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。 简单来讲就是尽可能的;把互联网上的所有的网页下载下来,放到本地服务器里形成备分,在对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。

  • 聚焦爬虫:聚焦爬虫是根据指定的需求抓取网络上指定的数据。例如:获取豆瓣上电影的名称和影评,而不是获取整张页面中所有的数据值。

  • 增量式爬虫:增量式是用来检测网站数据更新的情况,且可以将网站更新的数据进行爬取(后期会有章节单独对其展开详细的讲解)。

  • 门户网站通过制定相应的策略和技术手段,防止爬虫程序进行网站数据的爬取。

反反爬策略

  • 爬虫程序通过相应的策略和技术手段,破解门户网站的反爬虫手段,从而爬取到相应的数据。

robots协议

“君子协议”—— robots.txt。即网站有权规定网站中哪些内容可以被爬虫抓取,哪些内容不可以被爬虫抓取。这样既可以保护隐私和敏感信息,又可以被搜索引擎收录、增加流量。

可以通过网站域名 + /robots.txt的形式访问该网站的协议详情,例如:www.taobao.com/robots.txt

http&https协议

what is http协议 ?

官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

白话概念: HTTP协议就是服务器(Server)和客户端(Client)之间进行数据交互(相互传输数据)的一种形式。

HTTP工作原理

HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
在这里插入图片描述

常见的请求头信息

在这里插入图片描述

常见的响应头信息

在这里插入图片描述

https协议

HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。

在这里插入图片描述

https加密算法

  • 对称秘钥加密
  • 非对称秘钥加密
  • 证书秘钥加密

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK