月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

由于小编有交流爬虫,Python一个地方的。最近进来了许多小白。基本每天就是问:完全零基础如何学爬虫呢?老铁,我怎么开始学,能指点下吗?爬虫好好玩,好好学,HTTP是什么呢?那个对于我们用爬虫有什么帮助嘛?今天特意把从零开始开始爬虫给整理出来,希望能帮助那些喜欢玩爬虫,也想找爬虫工作的小白们。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

1. URI和URL

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

但是在目前的互联网中,URN用得非常少,所以几乎所有的URI都是URL,一般的网页链接我们既可以称为URL,也可以称为URI,我个人习惯称为URL。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

3. HTTP和HTTPS

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

HTTP的全称是Hyper Text Transfer Protocol,中文名叫作超文本传输协议。HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证高效而准确地传送超文本文档。HTTP由万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)共同合作制定的规范,目前广泛使用的是HTTP 1.1版本。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

  • 建立一个信息安全通道来保证数据传输的安全。
  • 确认网站的真实性,凡是使用了HTTPS的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过CA机构颁发的安全签章来查询。

现在越来越多的网站和App都已经向HTTPS方向发展,例如:


月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

4. HTTP请求过程

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

点击这个条目,即可看到更详细的信息,如图2-6所示。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

首先是General部分,Request URL为请求的URL,Request Method为请求的方法,Status Code为响应状态码,Remote Address为远程服务器的地址和端口,Referrer Policy为Referrer判别策略。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

5. 请求

请求,由客户端向服务端发出,可以分为4部分内容:请求方法(Request Method)、请求的网址(Request URL)、请求头(Request Headers)、请求体(Request Body)。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

GET和POST请求方法有如下区别。

  • GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL不会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。
  • GET请求提交的数据最多只有1024字节,而POST方式没有限制。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

方法

描述

GET

请求页面,并返回页面内容

HEAD

类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头

POST

大多用于提交表单或上传文件,数据包含在请求体中

PUT

从客户端向服务器传送的数据取代指定文档中的内容

DELETE

请求服务器删除指定的页面

CONNECT

把服务器当作跳板,让服务器代替客户端访问其他网页

OPTIONS

允许客户端查看服务器的性能

TRACE

回显服务器收到的请求,主要用于测试或诊断

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

  • Accept:请求报头域,用于指定客户端可接受哪些类型的信息。
  • Accept-Language:指定客户端可接受的语言类型。
  • Accept-Encoding:指定客户端可接受的内容编码。
  • Host:用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置。从HTTP 1.1版本开始,请求必须包含此内容。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

Content-Type

提交数据的方式

application/x-www-form-urlencoded

表单数据

multipart/form-data

表单文件上传

application/json

序列化JSON数据

text/xml

XML数据

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

(1) 响应状态码

响应状态码表示服务器的响应状态,如200代表服务器正常响应,404代表页面未找到,500代表服务器内部发生错误。在爬虫中,我们可以根据状态码来判断服务器响应状态,如状态码为200,则证明成功返回数据,再进行进一步的处理,否则直接忽略。表2-3列出了常见的错误代码及错误原因。

表2-3 常见的错误代码及错误原因

状态码

说明

详情

100

继续

请求者应当继续提出请求。服务器已收到请求的一部分,正在等待其余部分

101

切换协议

请求者已要求服务器切换协议,服务器已确认并准备切换

200

成功

服务器已成功处理了请求

201

已创建

请求成功并且服务器创建了新的资源

202

已接受

服务器已接受请求,但尚未处理

203

非授权信息

服务器已成功处理了请求,但返回的信息可能来自另一个源

204

无内容

服务器成功处理了请求,但没有返回任何内容

205

重置内容

服务器成功处理了请求,内容被重置

206

部分内容

服务器成功处理了部分请求

300

多种选择

针对请求,服务器可执行多种操作

301

永久移动

请求的网页已永久移动到新位置,即永久重定向

302

临时移动

请求的网页暂时跳转到其他页面,即暂时重定向

303

查看其他位置

如果原来的请求是POST,重定向目标文档应该通过GET提取

304

未修改

此次请求返回的网页未修改,继续使用上次的资源

305

使用代理

请求者应该使用代理访问该网页

307

临时重定向

请求的资源临时从其他位置响应

400

错误请求

服务器无法解析该请求

401

未授权

请求没有进行身份验证或验证未通过

403

禁止访问

服务器拒绝此请求

404

未找到

服务器找不到请求的网页

405

方法禁用

服务器禁用了请求中指定的方法

406

不接受

无法使用请求的内容响应请求的网页

407

需要代理授权

请求者需要使用代理授权

408

请求超时

服务器请求超时

409

冲突

服务器在完成请求时发生冲突

410

已删除

请求的资源已永久删除

411

需要有效长度

服务器不接受不含有效内容长度标头字段的请求

412

未满足前提条件

服务器未满足请求者在请求中设置的其中一个前提条件

413

请求实体过大

请求实体过大,超出服务器的处理能力

414

请求URI过长

请求网址过长,服务器无法处理

415

不支持类型

请求格式不被请求页面支持

416

请求范围不符

页面无法提供请求的范围

417

未满足期望值

服务器未满足期望请求标头字段的要求

500

服务器内部错误

服务器遇到错误,无法完成请求

501

未实现

服务器不具备完成请求的功能

502

错误网关

服务器作为网关或代理,从上游服务器收到无效响应

503

服务不可用

服务器目前无法使用

504

网关超时

服务器作为网关或代理,但是没有及时从上游服务器收到请求

505

HTTP版本不支持

服务器不支

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

(3) 响应体

最重要的当属响应体的内容了。响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码;请求一张图片时,它的响应体就是图片的二进制数据。我们做爬虫请求网页后,要解析的内容就是响应体,如图2-8所示。

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

最后,想学习Python的小伙伴们!

请关注+私信回复:“学习”就可以拿到一份我为大家准备的Python学习资料!

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

pytyhon学习资料

月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)

python学习资料

相关推荐