学习爬虫必会的Web知识
本帖最后由 不二如是 于 2020-3-17 18:35 编辑本讲是:实用Tips - 51 - 如何从Web端灭“爬虫”?的衍生系列。
从 Web 端想学好爬虫,无外乎两点:
[*]爬虫原理
[*]HTTP/HTTPS通讯协议
接下来就从这两个方面来带大家好好学习一下。
网络爬虫
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器:
发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
爬虫就是模拟浏览器的行为,越像越好,越像就越不容易被发现。
原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。
从分类来说,常用的就两种:
[*]通用类:针对搜索引擎
[*]聚焦类:针对定向网站
从 python 极客系列板块,我们就知道爬虫能干啥:
传送门
爬虫工作其实也是有固定流程的:
第一步,向起始url发送请求,并获取响应。
第二步,对响应进行提取。
第三步,如果提取 url,则继续发送请求获取响应。
第四步,如果提取数据,则将数据进行保存。
不过有言在先,存在一些道德层面的约束:robots 协议
网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
当然这仅仅是君子的口头协议,背后意味着啥,我就不多说了。
有兴趣的鱼油,可以淘宝的 robots 协议(隐藏内容,可不看):
**** Hidden Message *****
HTTP/HTTPS
HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议。
它由请求和响应构成,且是无状态的。
协议:
协议规定了通信双方必须遵守的数据传输格式,这样通信双方按照约定的格式才能准确的通信。
无状态:
无状态是指两次谅解通信之间是没有任何联系的,每次都是一个新的连接,服务端不会记录前后的请求信息。
常见的 HTTP 请求流程:
第一步、浏览器通过域名解析服务器(DNS)获取 IP 地址。
第二步、浏览器先向 IP 发起请求,并获取相应。
第三步、在返回的响应内容(html)中,会带有 css、js、图片等 url 地址,以及 ajax 代码。
第四步、浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应。
第五步、浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css 等内容会修改页面的内容。
js 也可以重新发送请求,获取响应,从获取第一个响应并在浏览器中展示,直到最终获取全部响应。
并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染
上面的这 5 步,其实知不知道并不影响爬虫的使用。
但是下面要说的协议结构图,就必须要懂啦:
然后就是 url 地址格式:
scheme://host[:port]/path/…/[?query-string][#anchor]
scheme:协议(例如:http, https, ftp)
host:服务器的 IP 地址或者域名
port:服务器的端口(如果是走协议默认端口,缺省端口80)
path:访问资源的路径
query-string:参数,发送给 http 服务器的数据
anchor:锚(跳转到网页的指定锚点位置)
一个案例:
常见的请求头:
请求头 作用
Cookie Cookie
User-Agent 浏览器名称
Referer 页面跳转处
Host 主机和端口号
Connection 链接类型
Upgrade-Insecure-Requests 升级为 HTTPS 请求
Accept 传输文件类型
Accept-Encoding 文件编解码格式
x-requested-with : XMLHttpRequest ajax 请求
HTTP 因为不需要对数据进行加密所以性能更高,但是安全性差。
HTTPS 虽然安全性高,但是因为浏览器和服务器端需要对数据进行加解密,所以占用服务器资源。
http://xxx.fishc.com/forum/201803/20/101934b3igkgm9hgbgz0ck.gif
如果喜欢,别忘了评分{:10_281:} :
http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif
这位鱼油,如果喜欢本系列HTML帖子,请订阅 专辑☞(传送门)(不喜欢更要订阅{:10_278:} ) thank you very much 看看 {:10_257:} 大佬,带带我哦{:5_93:} 看看君子协议 真的很好奇,啥是ROBOTS协议。 {:5_105:} 让我康康啊 想看隐藏部分 是什么,看看 有用 学习学习 冲冲冲 看一看 加油 需要回复的 robots是有格式滴~ 666 , 珍品 en
页:
[1]
2