月薪45万的python的程序员告诉你如何学爬虫!(文末附赠教程)
由于小编有交流爬虫,Python一个地方的。最近进来了许多小白。基本每天就是问:完全零基础如何学爬虫呢?老铁,我怎么开始学,能指点下吗?爬虫好好玩,好好学,HTTP是什么呢?那个对于我们用爬虫有什么帮助嘛?今天特意把从零开始开始爬虫给整理出来,希望能帮助那些喜欢玩爬虫,也想找爬虫工作的小白们。
1. URI和URL
但是在目前的互联网中,URN用得非常少,所以几乎所有的URI都是URL,一般的网页链接我们既可以称为URL,也可以称为URI,我个人习惯称为URL。
3. HTTP和HTTPS
HTTP的全称是Hyper Text Transfer Protocol,中文名叫作超文本传输协议。HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证高效而准确地传送超文本文档。HTTP由万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)共同合作制定的规范,目前广泛使用的是HTTP 1.1版本。
- 建立一个信息安全通道来保证数据传输的安全。
- 确认网站的真实性,凡是使用了HTTPS的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过CA机构颁发的安全签章来查询。
现在越来越多的网站和App都已经向HTTPS方向发展,例如:
4. HTTP请求过程
点击这个条目,即可看到更详细的信息,如图2-6所示。
首先是General部分,Request URL为请求的URL,Request Method为请求的方法,Status Code为响应状态码,Remote Address为远程服务器的地址和端口,Referrer Policy为Referrer判别策略。
5. 请求
请求,由客户端向服务端发出,可以分为4部分内容:请求方法(Request Method)、请求的网址(Request URL)、请求头(Request Headers)、请求体(Request Body)。
GET和POST请求方法有如下区别。
- GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL不会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。
- GET请求提交的数据最多只有1024字节,而POST方式没有限制。
方法
描述
GET
请求页面,并返回页面内容
HEAD
类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST
大多用于提交表单或上传文件,数据包含在请求体中
PUT
从客户端向服务器传送的数据取代指定文档中的内容
DELETE
请求服务器删除指定的页面
CONNECT
把服务器当作跳板,让服务器代替客户端访问其他网页
OPTIONS
允许客户端查看服务器的性能
TRACE
回显服务器收到的请求,主要用于测试或诊断
- Accept:请求报头域,用于指定客户端可接受哪些类型的信息。
- Accept-Language:指定客户端可接受的语言类型。
- Accept-Encoding:指定客户端可接受的内容编码。
- Host:用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置。从HTTP 1.1版本开始,请求必须包含此内容。
Content-Type
提交数据的方式
application/x-www-form-urlencoded
表单数据
multipart/form-data
表单文件上传
application/json
序列化JSON数据
text/xml
XML数据
(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版本不支持
服务器不支
(3) 响应体
最重要的当属响应体的内容了。响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码;请求一张图片时,它的响应体就是图片的二进制数据。我们做爬虫请求网页后,要解析的内容就是响应体,如图2-8所示。
最后,想学习Python的小伙伴们!
请关注+私信回复:“学习”就可以拿到一份我为大家准备的Python学习资料!
pytyhon学习资料
python学习资料