一.什么是 http 协议?
HTTP协议是超文本传输协议的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。(超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本)
二.http 和 https 的区别?
1. 安全性不同
http是一个简单的请求-响应协议,特点是无状态和明文传输、而https,实际上是http加上SSL协议组合形成的一种加密传输协议。如果网站采用http协议,因为该协议不加密,极容易遭遇中间人攻击,用户的个人隐私和一些敏感数据很容易泄露。https则因为ssl协议的存在,会对网站与客户端之前传输的数据进行加密,不存在数据泄露的问题。
2. 响应速度
理论上,http响应速度更快,这是因为http只需三次握手,也就是3个包即可建立连接, 而https除了三次握手,还需进行ssl握手,一共需要12个包。
3. 端口
http和https采用两种完全不同的连接方式,前者采用的是80端口,后者则是443端口。
4. 消耗资源
https是构建在SSL之上的http协议,所以https会消耗更多的服务器资源。
5. 展示方式
由于http是一种没有加密的协议,各大浏览器厂商开始支持https站点。例如http站点,会被谷歌浏览器标记为“不安全”等等,https站点,则会被各大浏览器加上“绿色安全锁”标记,如果网站配置增强级SSL证书,地址栏还会变为“绿色地址栏。”
6. 费用不同
https需为网站购买和配置ssl证书,会产生一定的费用。
三.什么是爬虫,有哪些分类?
爬虫(Spider),又叫网络爬虫(又被称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
分类:
通用网络爬虫[广度]
通用网络爬虫(General Purpose Web Crawler)又被称为全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型Web 服务提供商采集数据。 由于商业原因,它们的技术细节很少公布出来。 这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。 虽然存在一定缺陷,通用网络爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值。而且通用爬虫必须遵循 ROBOT 协议----是一种约定的规范;针对通用爬虫进行的数据采集限制。
聚焦网络爬虫[深度]
聚焦网络爬虫(Focused Crawler),又被称为主题网络爬虫(Topical Crawler)或者定向爬虫,是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。 和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也由于数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。
增量式网络爬虫
增量式网络爬虫(Incremental Web Crawler)是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。增量式网络爬虫的体系结构[包含爬行模块、排序模块、更新模块、本地页面集、待爬行 URL 集以及本地页面 URL 集等。
累计式爬虫
累积式爬虫(Cumulative Crawler)类似于增量式爬虫,但是增量式爬虫爬取数据的时候,如果之前爬取的数据发生变化,则重新爬取,而累计式抓取则不会。累积式爬虫是指从某一个时间点开始,通过遍历的方式抓取系统所能允许存储和处理的所有网页。在理想的软硬件环境 下,经过足够的运行时间,累积式抓取的策略可以保证抓取到相当规模的网页集合。但由于 Web 数据的动态特性,集合中网页的被抓取时间点是不同的,页面被更新的情况也不同,因此累积式抓取到的网页集合事实上并无法与真实环境中的网络数据保持致。
Deep Web 爬虫
Web 页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web,也称 Invisible Web Pages 或 Hidden Web)。 表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的 Web 页面。Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。例如那些用户注册后内容才可见的网页就属于 Deep Web。 2000 年 Bright Planet 指出:Deep Web 中可访问信息容量Surface Web 的几百倍,是互联网上最大、发展最快的新型信息资源。
四.数据爬取的步骤有哪些?
第一步:获取网页链接
第二步:数据存储
第三步:预处理(数据清洗)
第四步:数据利用
五.如何审查页面元素?
首先使用 Chrome 浏览器打开百度,然后在百度首页的空白处点击鼠标右键(或者按快捷键:F12),在出现的会话框中点击“检查”
检查百度首页元素
点击审查元素按钮,然后将鼠标移动至您想检查的位置,比如百度的输入框,然后单击,此时就会将该位置的代码段显示出来。最后在该代码段处点击右键,在出现的会话框中选择 Copy 选项卡,并在二级会话框内选择“Copy element”
六.什么是 cookie?
cookie实际上就是一些信息,这些信息以文件的形式存储在客户端计算机上。当用户访问了某个网站,可以通过cookie向访问者电脑上存储数据。
比如:自动登录 用户名
七.get 方法和 pos 方法的区别?
GET方法
GET用于从指定资源请求数据
GET是最常见的HTTP方法之一。
有关GET请求的其他的一些注释:
GET请求可以被缓存
GET请求被留在浏览器的历史记录中
GET请求可以被收藏为书签
GET请求不应该在处理敏感数据时候使用
GET请求有长度限制
GET请求只有当用于取回数据
POST方法
POST用于将数据发送到服务器来创建/更新资源。
POST是最常见Http方法之一。
有关于POST请求的其他一些注释:
POST请求不会被缓存
POST请求不会被保留在浏览器历史记录中
POST不能被收藏为书签
POST请求对数据长度没有要求
八.常见的状态码有哪些?
信息状态码
100(继续请求):客户端在发情POST请求给服务器端,征询服务区的情况,查看服务器是否处理POST的数据
成功状态码
200(成功):请求已成功,请求所希望的响应头或者请求体数据将随此响应返回
201(已创建):请求成功并且服务器创建了新的资源
202(已创建):服务器已经接收请求,但尚未处理
203(未授权信息):服务器已成功处理请求,但是返回的数据可能来自另一来源
204(无内容):请求已经成功,但是没有返回任何内容
205(重置内容):服务器成功处理请求,但是没有返回内容
206(部分内容):服务器成功处理了部分的请求
重定向状态码
301(永久移动):请求的页面已经被永久移动到新位置。服务器返回此响应时,会自动将请求者转到新的位置
302(临时移动):服务器目前从不同位置的页面响应请求,但请求者应继续使用原有位置来进行以后的请求
303(查看其他位置):请求者应该对不同的位置使用单独的 GET 请求来检索响应,服务器返回此代码
304(未修改):上次请求之后,请求的页面没有修改过。服务器返回此响应,不会返回网页内容
305(使用代理):请求者只能使用代理访问请求的网页,如果服务器返回此响应,表示请求者应该继续使用代理
客户端错误状态码
400(错误请求):服务器不理解请求的语法
401(未授权):请求要求身份验证。对于需要登录的页面,服务器返回此状态码
403(禁止):服务器拒绝请求
404(未找到):服务器找不到要请求的网页
405(方法禁用):禁止请求中指定的方法
406(不接受):无法使用请求的内容特来响应请求的网页
407(需要代理授权):与401类似,但指定请求者应当授权使用代理
408(请求超时):服务器在等候请求时发生超时
服务器错误状态码
500(请求错误):服务器遇到错误,无法完成请求
501(尚未实施):服务器不具备完成请求的功能
503(服务不可用):服务器目前不可用(处于超载或者停机维护)
504(网关超时):服务器作为网关或代理,但是没有及时从上游服务器收到请求
505(http版本不支持):服务器不支持请求中所用到的 HTTP 协议版本



