您的位置:新闻资讯 >文章内容
浅谈HTTP协议和爬虫原理
来源:精灵代理 作者:admin 时间:2019-11-18 14:37:46

  浅谈HTTP协议和爬虫原理!大数据时代,海量数据的获取离不开爬虫技术。再加上代理IP的帮助,爬虫技术的应用也就越来越广泛。在学习爬虫的过程中,首先要了解HTTP协议和爬虫的基本原理,下面精灵代理ip小编做下简单介绍。

浅谈HTTP协议和爬虫原理

  一、HTTP协议的理解

  在学习HTTP之前我们需要了解一下URL、URI(精确的说明某资源的位置以及如果去访问它)。

  URL:Universal Resource Locator 统一资源定位符,描述了一台特定服务器上某资源的特定位置。

  URI :Uniform Resource Identifier 统一资源标识符,URI有两种表现形式URL和URN。

  我们经常会在URL的首部会看到http或者https,这个就是访问资源需要的协议类型,除了http和https还有ftp,sftp,smb等。在爬虫中,我们常用的就是http和https。

  http:HyperText Transfer Protocol 超文本传输协议是互联网上应用最为广泛的一种网络协议。所有的www文件都要遵守这个标准。HTTP是一个客户端和服务器端请求和应答的标准,它使用socke基于TCP建立的,所以http是可靠的数据传输协议,由于它是短链接的,也就是一次请求,一次响应断开,所以它表现处无状态的现象。目前广泛使用的是 HTTP 1.1 版本。

  https :Hyper Text Transfer Protocol over Secure Socket Layer是以安全为目标的 HTTP 通道,简单讲是HTTP的安全版,即 HTTP 下加入 SSL 层,简称为 HTTPS。HTTPS的安全基础是SSL,所以他传输的内容都是经过SSL加密的,它的主要作用:

  建立一个信息安全通道,来保证数据的传输安全

  确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。

  HTTP和HTTPS的区别:

  https协议需要到ca申请证书,一般免费证书很少,需要交费.

  http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

  http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

  HTTP请求流程

  一次HTTP操作称为一个事务,其工作过程可分为4步:

  首先,在浏览器地址栏(或点击一个超链接)HTTP的工作就开始了

  建立连接后,客户端向服务器端发送一个请求:

  

浅谈HTTP协议和爬虫原理


  服务器接受到请求后,给其响应:

  

浅谈HTTP协议和爬虫原理


  客户端浏览器接受响应之后,在用户的浏览器渲染显式。

  然后客户端和服务器端断开连接。

  二、爬虫的基本原理

  网络爬虫(又被称为网页蜘蛛)是一种按照一定的规则,自动抓取万维网信息的程序或者脚本。

  获取网页->提取信息->保存数据

  获取网页

  爬虫的首要工作就是获取网页源代码,然后从中提取我们想要的数据。

  在python中,提供了许多库来帮助我们实现这个操作,如 Urllib、Requests 等,我们可以用这些库来帮助我们实现 HTTP 请求操作,Request 和 Response 都可以用类库提供的数据结构来表示,得到 Response 之后只需要解析数据结构中的 Body 部分即可,即得到网页的源代码,这样我们可以用程序来实现获取网页的过程了。

  提取信息

  我们获取网页源代码后,接下来的工作就是分析网页源代码,从中提取我们想要的数据,最通用的方法就是使用正则表达式,但是使用正则表达式比较复杂。在Python中,如 BeautifulSoup、PyQuery、LXML 等,使用这些库可以高效的从源代码中提取网页信息。

  保存数据

  提取信息之后,我们可以将数据保存到本地,以便后续使用,保存方式有很多种,比如TXT,Json也可以保存到数据库中,如Mysql,MangoDB等。

  动态渲染页面的抓取

  现在越来越多的网页使用js来构建网页,所以我们经常使用requests等获取的网页源代码和浏览器看到的不同,使用requests,我们只能得到静态的HTML源代码,他不会帮我们去加载js文件,我们可以借助Selenium、Splash 这样的库来实现模拟 JavaScript 渲染,这样我们便可以爬取 JavaScript 渲染的网页的内容了。推荐阅读:快速提升微信营销的粉丝转化的方法?

  掌握了爬虫应该学习的内容,我们不可避免的就会遇到反爬虫的问题,像时间限制、IP限制、验证码限制等等,都可能会导致爬虫无法进行,所以也出现了很多像代理IP、时间限制调整这样的方法去接触反爬虫限制,当然具体的操作方法需要你针对性的去研究。

相关文章内容简介
在线咨询
大客户经理
大客户经理
13318873961

大客户经理微信

微信公众号

微信公众号

回到顶部