什么是爬虫
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.
原则上来说,只要是浏览器(客户端)能做的事情,爬虫都能够做.
爬虫的分类和流程
根据被爬网站的数量的不同,我们把爬虫分为:
通用爬虫 :通常指搜索引擎的爬虫(百度, 谷歌, 360等)
聚焦爬虫 :针对某种需求针对特定网站的爬虫
爬虫的流程
- 向起始url发送请求,并获取响应.
- 对响应进行提取.
- 如果提取url, 则继续发送请求获取响应.
- 如果提取数据, 则将数据进行保存.
robots协议
Robots协议: 网站通过Robots协议告诉搜索引擎哪些页面可以抓取, 那些页面不能抓取,但它仅仅是互联网中的一种约定.
robots协议一般是在网站的根目录下.
例如京东的robots协议: https://www.jd.com/robots.txt
http和https的概念
在学习爬虫之前,我们需要对HTTP协议和网络请求有初步的认识.
- HTTP
超文本传输协议
默认端口号:80 - HTTPS
HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
默认端口号:443
HTTPS比HTTP更安全,但是性能更低
浏览器发送HTTP请求的过程
url -> 统一资源定位符(可以理解为网址)
1. 当我们在浏览器的地址栏中输入某个网址,敲下回车时,浏览器会向地址栏中的url发起请求, 并获取响应.
2. 在返回的响应(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器会按照响应内容中的顺序依次发送其他的请求,并获取相应的响应.
3. 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应.
4. 从获取第一个响应并在浏览器中显示,直到获取全部响应————这个过程叫做浏览器的渲染
注意:
在爬虫中,爬虫只会请求url地址,对应的拿到url地址所对应的响应(该响应的内容可以是html,css,js,图片等)
很多时候浏览器渲染出来的页面和爬虫请求的页面并不一样,所以在爬虫中,需要以url地址对应的响应为准来进行数据的提取
HTTP常用的请求方法
- 一般在爬虫中常用的HTTP请求有GET和POST两种.
get是从服务器上获取指定页面信息, 它请求的参数是拼接在url上的.以?隔开
如: https://www.baidu.com/s?wd=爬虫
post是向服务器提交数据并获取页面信息, 它请求的参数是在请求体中.
小结
- 爬虫分类:通用爬虫、聚焦爬虫
- 爬虫的流程:
向起始url发送请求,并获取响应
对响应进行提取
如果提取url,则继续发送请求获取响应
如果提取数据,则将数据进行保存 - robots协议
- 了解 http、https的概念和区别:
http: 超本文传输协议
https: HTTP + SSL,即带有安全套接字层的超本文传输协议 - 浏览器发送http请求的过程:
浏览器先向地址栏中的url发起请求,并获取响应
在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应
从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改