鱼C论坛

 找回密码
 立即注册
查看: 4098|回复: 36

[奇技淫巧] 学习爬虫必会的Web知识

[复制链接]
发表于 2019-6-14 09:24:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2020-3-17 18:35 编辑

本讲是:实用Tips - 51 - 如何从Web端灭“爬虫”?的衍生系列。

从 Web 端想学好爬虫,无外乎两点:

  • 爬虫原理
  • HTTP/HTTPS通讯协议

接下来就从这两个方面来带大家好好学习一下。


网络爬虫




网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器:

发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

爬虫就是模拟浏览器的行为,越像越好,越像就越不容易被发现。

原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。

从分类来说,常用的就两种:

  • 通用类:针对搜索引擎
  • 聚焦类:针对定向网站

从 python 极客系列板块,我们就知道爬虫能干啥:


爬虫工作其实也是有固定流程的:
Snip20190619_8.png


第一步,向起始url发送请求,并获取响应。

第二步,对响应进行提取。

第三步,如果提取 url,则继续发送请求获取响应。

第四步,如果提取数据,则将数据进行保存。

不过有言在先,存在一些道德层面的约束:robots 协议

网站通过 Robots 协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

当然这仅仅是君子的口头协议,背后意味着啥,我就不多说了。

有兴趣的鱼油,可以淘宝的 robots 协议(隐藏内容,可不看):
游客,如果您要查看本帖隐藏内容请回复



HTTP/HTTPS




HTTP(超文本传输协议)是应用层上的一种客户端/服务端模型的通信协议。

它由请求和响应构成,且是无状态的。

协议:
协议规定了通信双方必须遵守的数据传输格式,这样通信双方按照约定的格式才能准确的通信。

无状态:
无状态是指两次谅解通信之间是没有任何联系的,每次都是一个新的连接,服务端不会记录前后的请求信息。


常见的 HTTP 请求流程:
http.png


第一步、浏览器通过域名解析服务器(DNS)获取 IP 地址。

第二步、浏览器先向 IP 发起请求,并获取相应。

第三步、在返回的响应内容(html)中,会带有 css、js、图片等 url 地址,以及 ajax 代码。

第四步、浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应。

第五步、浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css 等内容会修改页面的内容。

js 也可以重新发送请求,获取响应,从获取第一个响应并在浏览器中展示,直到最终获取全部响应。

并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染

上面的这 5 步,其实知不知道并不影响爬虫的使用。

但是下面要说的协议结构图,就必须要懂啦:
http协议结构图.jpg


然后就是 url 地址格式:
http的url规则.jpg

scheme://host[:port]/path/…/[?query-string][#anchor]
scheme:协议(例如:http, https, ftp)

host:服务器的 IP 地址或者域名

port:服务器的端口(如果是走协议默认端口,缺省端口80)

path:访问资源的路径

query-string:参数,发送给 http 服务器的数据

anchor:锚(跳转到网页的指定锚点位置)

一个案例:
Snip20190619_9.png


常见的请求头:
请求头        作用
Cookie        Cookie
User-Agent        浏览器名称
Referer        页面跳转处
Host        主机和端口号
Connection        链接类型
Upgrade-Insecure-Requests        升级为 HTTPS 请求
Accept        传输文件类型
Accept-Encoding        文件编解码格式
x-requested-with : XMLHttpRequest        ajax 请求

HTTP 因为不需要对数据进行加密所以性能更高,但是安全性差。

HTTPS 虽然安全性高,但是因为浏览器和服务器端需要对数据进行加解密,所以占用服务器资源。





                               
登录/注册后可看大图


如果喜欢,别忘了评分


                               
登录/注册后可看大图


这位鱼油,如果喜欢本系列HTML帖子,请订阅 专辑☞传送门)(不喜欢更要订阅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-14 18:23:27 | 显示全部楼层
thank you very much
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-11 17:12:18 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-11 22:47:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-12 08:21:04 | 显示全部楼层
大佬,带带我哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 21:12:13 | 显示全部楼层
看看君子协议
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-22 13:37:29 | 显示全部楼层
真的很好奇,啥是ROBOTS协议。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-29 00:13:56 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-29 09:51:17 From FishC Mobile | 显示全部楼层
让我康康啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-13 14:42:31 | 显示全部楼层
想看隐藏部分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 11:29:00 | 显示全部楼层
是什么,看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-26 09:54:09 | 显示全部楼层
有用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-16 10:42:21 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-6 21:44:56 | 显示全部楼层
冲冲冲
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 14:32:27 | 显示全部楼层
看一看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 08:59:41 | 显示全部楼层
加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-29 13:34:57 | 显示全部楼层
需要回复的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 11:29:49 | 显示全部楼层
robots是有格式滴~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 11:59:52 | 显示全部楼层
666 , 珍品
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-11 11:55:15 | 显示全部楼层
en
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 20:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表