我们可以把互联网比作一张大网,而爬虫(网络爬虫)便是网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这里就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被爬行下来。
一、爬虫概述
简单来说,爬虫就是获取网页并提取和保存信息的自动化程序。下面介绍爬虫的基本流程:
1.获取网页
爬虫首先要做的工作就是获取网页,就是获取网页的源代码。源代码李包含了网页的部分有用信息,所以只要把源代码获取下来,就可以从中提取到想要的信息了。
爬虫通过请求和响应来获取网页,向网站的服务器发送一个请求,返回的响应体便是网页源代码。所以,最关键的部分就是构造一个请求并发送给服务器,然后接受到响应并将其解析出来。
2.提取信息
获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。
由于网页的结构由一定的规则,所以可以根据一些网页节点属性、CSS选择器或XPath来提取网页信息的库。
提取信息是爬虫非常重要的部分,它可以使杂乱的数据变得条理清晰,以便我们后续处理和分析。
3.保存数据
提取信息后,我们一般会将提取到的数据保存到一些地方以便后续使用。这里保存形式多样,可以简单保存为TXT文本或JSON文本,也可以保存到数据库,如Mysql,还可以保存到远程服务器。
二、请求与响应
我们在浏览器中输入一个URL,回车之后便会在浏览器中观察到页面内容。实际上,这个过程是浏览器向网站所在的服务器发送了一个请求,网站服务器接收到这个请求后进行处理和解析,然后返回对应的响应,接着传回给浏览器。响应里包含了页面的源代码内容,浏览器再对器进行解析,将网页呈现出来。
1)请求,request即为我们的请求,当我们在浏览器内输入网址,敲击回车时,这时浏览器就会发送消息给该网址所在的服务器,这个过程叫做HTTP Request
2)响应,response即为我们的响应,服务器在接收到浏览器发送的消息后,能够根据浏览器发送消息的内容做出相应的处理,然后把消息回传给浏览器。这个过程就做HTTP Response。浏览器收到服务器的Response信息后,会对信息进行处理,然后展示。
请求:由客户端向服务器发出,可以分为4部分内容:请求方法、请求的网址、请求头、请求体。
(1)请求方法
常见的请求方法有两种:GET和POST。
在浏览器中直接输入URL并回车,这便发起了一个GET请求,请求的参数会直接包含到URL里。
POST请求大多在表单提交时发起,其数据通常以表单的形式传输,而不会体现在URL中。
(2)请求的网址
请求的网址,即统一资源定位器URL,它可以唯一确定我们想请求的资源。
(3)请求头
请求头,用来说明要使用的附加信息,比较重要的信息有Cookie、Referer、User-Agent等
(4)请求体
请求体一般承载的内容是POST请求中的表单数据,而对于GET请求,请求体为空。
响应:由服务器返回给客户端,可以分为3部分:响应状态码、响应头和响应体。
(1)响应状态码
响应状态码表示服务器的响应状态,如200代表服务器正常响应,404代表页面未找到,500代表服务器内部发生错误。
(2)响应头
响应头包含了服务器对请求的应答信息,如Content-Type、Server、Set-Coookie等。
(3)响应体
响应体时响应的正文内容,是最重要的内容了。比如请求网页时,它的响应体就是网页的HTML代码;请求一张图片时,它的响应体就是图片的二进制数据。
三、爬虫可以“爬”到怎样的数据
在网页中我们能看到各种各样的信息,最常见的便是常规网页,它们对应着HTML代码,而最常抓取的便是HTML源代码。另外,可能有些网页返回的数据不是HTML代码,而是一个JSON字符串(其中API接口大多采用这样的格式),这种格式的数据方便传输和解析,它们同样可以抓取,而且数据提取更加方便。
上述内容都对应各自的URL,是基于HTTP或HTTPS协议的,只要是这种数据,爬虫都可以抓取。
爬虫是一个请求网站并且提取数据的自动化程序。,说到自动化程序,意思是爬虫可以代替人来完成这些操作。首先我们手工是可以提取这些信息的,但当量特别大或想快速获取大量数据的话,肯定还是要借助程序。爬虫就是代替我们来完成这份爬取工作的自动化程序。在大数据时代,爬虫无疑在其中发挥了不可替代的作用,所以爬虫作为一个热门的技术是很值得我们去学习的。
来源:https://www.cnblogs.com/Y-xp/p/11797121.html