【Python】你真的了解爬虫吗?初识爬虫

什么是爬虫?

简单来说:代替人去模拟浏览器进行网页操作。

它能解决什么问题?

自动高效地获取互联网中我们感兴趣的信息并为我们所用。

即:为其他程序提供数据源 如搜索引擎(百度、Google等)、数据分析、大数据等等。

爬虫的分类:
通用网络爬虫:

搜索引擎,比如:百度、谷歌、Safari…

聚焦网络爬虫:

根据既定的目标有选择的抓取某一特定主题内容,并过滤掉无用的信息。

企业获取数据的方式:
  • 公司自有的数据
  • 第三方平台购买的数据 (百度指数、数据堂)
  • 爬虫爬取的数据
Python做爬虫的优势:
  • PHP : 对多线程、异步支持不太好
  • Java : 代码量大,代码笨重
  • C/C++ : 代码量大,难以编写
  • Python : 支持模块多、代码简洁、开发效率高 (scrapy框架)
爬虫违法么?

爬虫作为一种计算机技术就决定了它的中立性,因此爬虫本身在法律上并不被禁止,但是利用爬虫技术获取数据这一行为是具有违法甚至是犯罪的风险的。

http 与 https 协议:

学习爬虫之前,我们先来了解一下 http 与 https 协议:

什么是协议:

网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者”规则“,有了这种”约定“,不同厂商的生产设备,以及不同操作系统组成的计算机之间,就可以实现通信。

Http 协议又是个啥?

HTTP协议是超文本传输协议的缩写,英文是 Hyper Text Transfer Protocol。它是从 WEB 服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。

HTTP是一个基于 TCP/IP 通信协议来传递数据的协议,传输的数据类型为HTML 文件,、图片文件, 查询结果等。

HTTP协议一般用于 B/S 架构(浏览器/服务器结构)。浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。

Http的特点:
  • http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。

  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。

  • 灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。

  • 无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接,但是却不利于客户端与服务器保持会话连接,为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session。

  • 无状态:无状态是指协议对于事务处理没有记忆,后续处理需要前面的信息,则必须重传。

Http的请求与响应:

image.png

image.png

大致步骤:

  1. 当用户在浏览器的地址栏中输入一个URL并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。

  2. 当我们在浏览器输入URL www.baidu.com 的时候,浏览器发送一个Request请求去获取 www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。

  3. 浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如 images 文件,CSS文件,JS文件。 浏览器会自动再次发送 Request 去获取图片,CSS文件,或者JS文件。

  4. 当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。

Http 报文的组成:

HTTP报文大致分为报文首部报文主体两块,中间用空行来划分。通常,不一定有报文主体。

  • 报文首部:包含服务器或客户端需处理的请求或响应的内容及属性。
  • 报文主体:是应该被发送的数据。
请求报文首部的结构:

image.png

响应报文首部的结构:

image.png

报文主体部分:

image.png

控制台点击Response,可以看到服务器返回给浏览器的数据(如上图),数据格式为html,浏览器拿到数据后解析渲染成我们所看到的百度首页。

什么是 Https?
  • https=http+ssl,顾名思义,https是在 http 的基础上加上了 SSL 保护壳,信息的加密过程就是在 SSL 中完成的;
  • https,是以安全为目标的 HTTP 通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。

http 与 https 的区别

一般http中存在如下问题:

  • 请求信息明文传输,容易被窃听截取;
  • 数据的完整性未校验,容易被篡改;
  • 没有验证对方身份,存在冒充危险;

Https 的缺点:

  • HTTPS协议多次握手,导致页面的加载时间延长近50%;
  • HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗;
  • 申请SSL证书需要钱,功能越强大的证书费用越高。
  • SSL涉及到的安全算法会消耗 CPU 资源,对服务器资源消耗较大。

小结:

  • HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
  • http和https使用连接方式不同,默认端口也不一样,http是80,https是443。

拓展:

URL:(Uniform Resource Locator)

中文叫统一资源定位符。是用来标识某一处资源的地址。也 即是我们常说的网址。

image.png

常见的请求方法:
  • GET:请求指定的页面信息,并返回实体主体。
  • POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
  • PUT:从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE:请求服务器删除指定的页面。
响应状态码:

访问一个网页时,浏览器会向web服务器发出请求。此网页所在的服务器会返回一个包含HTTP状态码的信息头用以响应浏览器的请求。

状态码分类:
  • 1XX- 信息型,服务器收到请求,需要请求者继续操作。
  • 2XX- 成功型,请求成功收到,理解并处理。
  • 3XX - 重定向,需要进一步的操作以完成请求。
  • 4XX - 客户端错误,请求包含语法错误或无法完成请求。
  • 5XX - 服务器错误,服务器在处理请求的过程中发生了错误。
常见的状态码:
  • 200 OK - 客户端请求成功
  • 301 - 资源(网页等)被永久转移到其它URL
  • 302 - 临时跳转
  • 400 Bad Request - 客户端请求有语法错误,不能被服务器所理解
  • 401 Unauthorized - 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
  • 404 - 请求资源不存在,可能是输入了错误的URL
  • 500 - 服务器内部发生了不可预期的错误
  • 503 Server Unavailable - 服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
User-Agent 用户代理(反反爬的第一步)

作用:记录用户的浏览器、操作系统等,为了让用户更好的获取HTML页面效果。

Referer防盗链:

表明当前这个请求是从哪个url过来的。一般情况下可以用来做反爬的技术。

抓包工具的使用:

image.png

  • Elements : 元素 网页源代码,提取数据和分析数据(有些数据是经过特殊处理的所以并不是都是准确的)
  • Console : 控制台 (打印信息)
  • Sources : 信息来源 (整个网站加载的文件)
  • NetWork : 网络工作(信息抓包) 能够看到很多的网页请求

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码免费领取保证100%免费

  • 16
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值