1.导语
我常常会看到有人在知乎上提问怎样入门 Python 爬虫?怎样学习Python爬虫[入门篇]?等这一些问题,我今天写这篇文章的目的就是来奉告我们,我为什么要学爬虫,爬虫的本质是什么。A8站源码交易平台
2.我为什么要学爬虫
先说我吧,我开始为什么要学爬虫呢?
两年前,我仍是个懵懂的小孩,那时分,基本上每天晚上都会上老司机论坛找电影,不知道我们知不知道老司机论坛,其实可以按照分类查找你想要看的电影的,但是它竟然没有多选(不能一起选择两个或多个分类进行查找)。比方 我想看“xxx”剧情+中文字幕的,我是怎样做的呢,先选择分类“xxx”,然后一页一页的ctrl+f 输入“中文” 查找…这样找了几天后,我发现这种方法简直太傻了,而是我百度了下,第一次知道了“爬虫”…所以,在健壮的喜好驱动下,我1个礼拜就入了门…这就是我为什么要学爬虫的经过
我觉得爬虫就是帮忙我们偷闲的,如上面,当我爬下来整个老司机论坛后,我可以自定义多条件查找了,不必再那么傻傻的一页一页的翻了;爬虫能帮我们省掉一系列繁琐的时间(比方我要下载我爱看图这个网站的图片,我不或许一张一张的点,我可以写一个爬虫帮我全部下载完)
3.爬虫的本质是什么
爬虫的本质我觉得就是一句话 仿照浏览器去翻开网页
我们来看一个比方吧(让红包飞)A8站源码交易平台
翻开这个网页后,按F12,翻开开发者东西,然后F5改写下页面(我用的Google浏览器)
先点击 “最上面的 Network ”然后点击 “Doc” ,应该会看到如下图相同的界面
我们先看General 下面的
request url ,标明我们翻开这个网页的地址,也就是我们上面的地址
request method ,标明我们央求的方法,这儿我们看到用的是GET
央求方法(一切方法全为大写)有多种,各个方法的说明如下:
GET 央求获取Request-URI所标识的资源
POST 在Request-URI所标识的资源后附加新的数据
HEAD 央求获取由Request-URI所标识的资源的照应消息报头
PUT 央求服务器存储一个资源,并用Request-URI作为其标识
DELETE 央求服务器删去Request-URI所标识的资源
TRACE 央求服务器回送收到的央求信息,首要用于检验或确诊
CONNECT 保存将来运用
OPTIONS 央求查询服务器的功用,或许查询与资源相关的选项和需求
运用举例:
GET方法:在浏览器的地址栏中输入网址的方法访问网页时,浏览器选用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)
POST方法要求被央求服务器接受附在央求后边的数据,常用于提交表单。
eg:POST /reg.jsp HTTP/ (CRLF)
Accept:image/gif,image/x-xbit,… (CRLF)
…
HOST:桂林电子科技大学 (CRLF)
Content-Length:22 (CRLF)
Connection:Keep-Alive (CRLF)
Cache-Control:no-cache (CRLF)
(CRLF) //该CRLF标明消息报头现已结束,在此之前为消息报头
user=jeffrey&pwd=1234 //此行以下为提交的数据
HEAD方法与GET方法简直是相同的,关于HEAD央求的回应部分来说,它的HTTP头部中包含的信息与经过GET央求所得到的信息是相同的。运用这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。该方法常用于检验超链接的有效性,是否可以访问,以及最近是否更新。A8站源码交易平台
status code 标明服务器回来的情况吗,这儿是200,标明OK
情况代码有三位数字组成,第一个数字定义了照应的类别,且有五种或许取值:
1xx:指示信息–标明央求已接收,继续处理
2xx:成功–标明央求已被成功接收、了解、接受
3xx:重定向–要结束央求有必要进行更进一步的操作
4xx:客户端差错–央求有语法差错或央求无法完结
5xx:服务器端差错–服务器未能完结合法的央求
常见情况代码、情况描绘、说明:
200 OK //客户端央求成功
400 Bad Request //客户端央求有语法差错,不能被服务器所了解
401 Unauthorized //央求未经授权,这个情况代码有必要和WWW-Authenticate报头域一起运用
403 Forbidden //服务器收到央求,但是拒绝供应服务
404 Not Found //央求资源不存在,eg:输入了差错的URL
500 Internal Server Error //服务器发生不可预期的差错
503 Server Unavailable //服务器其时不能处理客户端的央求,一段时间后或许恢复正常
---------------------

然后再看Request Headers(央求时分用的消息报头)
A8站源码交易平台
Accept
Accept央求报头域用于指定客户端接受哪些类型的信息。eg:Accept:image/gif,标明客户端希望接受GIF图象格式的资源;Accept:text/html,标明客户端希望接受html文本。
Accept-Encoding
Accept-Encoding央求报头域类似于Accept,但是它是用于指定可接受的内容编码。eg:Accept-Encoding:gzip.deflate.假设央求消息中没有设置这个域服务器假定客户端对各种内容编码都可以接受。A8站源码交易平台
Accept-Language
Accept-Language央求报头域类似于Accept,但是它是用于指定一种天然言语。eg:Accept-Language:zh-cn.假设央求消息中没有设置这个报头域,服务器假定客户端对各种言语都可以接受
Cache-Control 是用来控制网页的缓存,详细可以Cache-control_百度百科
Cookie,有时也用其复数方法 Cookies,指某些网站为了区别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(一般经过加密)。定义于 RFC2109 和 2965 中的都已扔掉,最新代替的标准是 RFC6265[1] 。(可以叫做浏览器缓存)
HOST 标明你央求网址的央求域
User-Agent 标明其时浏览器的称谓及版别A8站源码交易平台
Referer: 奉告服务器你是从哪个页面链接过来的(下图没有.)
---------------------

爬虫就是把上面的内容仿照发送出去(请我们等候下一篇文章.)