马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2020-3-17 18:35 编辑
本讲是:实用Tips - 51 - 如何从Web端灭“爬虫”?的衍生系列。
从 Web 端想学好爬虫,无外乎两点:
接下来就从这两个方面来带大家好好学习一下。
网络爬虫
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器:
发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。
爬虫就是模拟浏览器的行为,越像越好,越像就越不容易被发现。
原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。
从分类来说,常用的就两种:
从 python 极客系列板块,我们就知道爬虫能干啥:
爬虫工作其实也是有固定流程的:
第一步,向起始url发送请求,并获取响应。
第二步,对响应进行提取。
第三步,如果提取 url,则继续发送请求获取响应。
第四步,如果提取数据,则将数据进行保存。
不过有言在先,存在一些道德层面的约束:robots 协议
网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
当然这仅仅是君子的口头协议,背后意味着啥,我就不多说了。
有兴趣的鱼油,可以淘宝的 robots 协议(隐藏内容,可不看):
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 虽然安全性高,但是因为浏览器和服务器端需要对数据进行加解密,所以占用服务器资源。
如果喜欢,别忘了评分 :
这位鱼油,如果喜欢本系列HTML帖子,请订阅 专辑☞( 传送门)( 不喜欢更要订阅 ) |