初识网络爬虫

只愿长相守 提交于 2020-02-13 03:02:00

  我们可以把互联网比作一张大网,而爬虫(网络爬虫)便是网上爬行的蜘蛛。把网的节点比作一个个网页,爬虫爬到这里就相当于访问了该页面,获取了其信息。可以把节点间的连线比作网页与网页间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被爬行下来。

 

一、爬虫概述

简单来说,爬虫就是获取网页并提取和保存信息的自动化程序。下面介绍爬虫的基本流程:

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协议的,只要是这种数据,爬虫都可以抓取。

 

爬虫是一个请求网站并且提取数据的自动化程序。,说到自动化程序,意思是爬虫可以代替人来完成这些操作。首先我们手工是可以提取这些信息的,但当量特别大或想快速获取大量数据的话,肯定还是要借助程序。爬虫就是代替我们来完成这份爬取工作的自动化程序。在大数据时代,爬虫无疑在其中发挥了不可替代的作用,所以爬虫作为一个热门的技术是很值得我们去学习的。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!