在编写一个爬虫之前,来学习下爬虫的基础知识:
爬虫:简单的可以理解为模拟浏览器向服务器发送HTTP请求,服务器接收到请求,经过一系列的处理后返回响应内容,从返回的响应内容中提取所需数据的程序。
首先是URI和URL:
URI全称是Uniform Resource Identifier,即统一资源标识符,URL全称是Universal Resouce Locator,即统一资源定位符。
在目前的互联网中,URN几乎用的很少,基本都是URL。
超文本:也就是平时网页中的源代码(HTML),随便打开一个网页,鼠标点击右键,查看源代码即可以看到源代码。
HTTP:一般我们打开浏览器访问资源时都是需要输入协议类型的,HTTP全称是超文本传输协议。
HTTPS:可以理解为HTTP的安全版,在HTTP下加入了SSL层,简称HTTPS。
HTTP请求过程:我们平时在浏览器中输入一个URL,回车之后可以在浏览器中观察到页面的内容,这个过程是向服务器发送了一个请求,服务器接收到这个请求之后,进行处理和解析,然后返回对应的响应,之后传给浏览器,响应中包含了源代码等等,之后浏览器进行解析,渲染之后才是我们平时所看到的网页。
这里打开浏览器访问百度,然后按下F12,观察下发送请求的过程。
可以看到有Name,Status,Type,Waterfall等等
- Name:请求的名称
- Status:响应的状态吗,显示为200,代表响应是正常的。常见的还有403(服务器拒绝访问),404(未找到)
- Type:文档类型,这里的是HTML文档
- Waterfall 可视化瀑布流
请求可分为4个内容:
1 请求方法,常见的请求方法有GET请求和POST请求,POST请求可以理解为登陆知乎时输入账号密码的过程。
2 请求的地址(url)
3 请求头,headers等等:请求头里面包含有很多信息,这些都是服务器要用到的,重要的信息有Cookie,Reference, User-Agent等等
Cookie:这是网站用来辨别用户的而进行会话跟踪而存储在用户本地的数据,一般我们登陆微博都是通过账号密码,有时候登陆一次之后就可以很长时间不用登陆,这是因为Cookie还存在本地,Cookie可以查出当前状态是登陆状态。
Reference:可以用来标识请求是哪个页面发送过来的,常做防盗链处理等
User-Agent:可以让服务器识别客户端使用的操作系统及其浏览器版本,一般写爬虫时加上可以伪装为浏览器。不加容易被识别出时爬虫。
4 请求体
常见的请求方法分为两种:Get和Post,当然还有其他不常用的PUT,DELETE等等。
网页的组成一般可以分为三部分,HTML,CSS,JS,如果把网页比作一个人来看,那么HTML相当于骨架,CSS相当于皮肤,JS相当于肌肉
接下来来分析下爬虫能抓的数据时哪样的:
我们常见的一些二进制数据,图片,视频,音频,都是可以通过爬虫来进行抓取的。
了解完这些基础后,下一节就开始学习下如何使用基本库来进行抓取一些页面。