1.3 爬虫的本质
爬虫的本质是通过技术,模拟浏览器(这里的浏览器指广义上的浏览器,一切用http协议传输的app都可以被视为浏览器)的客户端向服务器发起请求,并通过相关数据对相关数据进行提取。
原则上来说,只要是客户端可以请求到的数据,我们用爬虫也可以拿到。
2. 爬虫入门
2.1 爬虫的基本知识
1.爬虫分类
爬虫主要分为两大类:
2. robots协议
Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,但它仅仅是互联网中的一般约定
- 一般网站的robot协议都会放在网站的根目录下的 robots.txt文件中
- https://www.taobao.com/robots.txt (淘宝的robots协议)
robots协议是一个君子协议,它并不会限制开发者对网站进行数据爬取,PS: 爬虫有风险,爬取需谨慎!!!
3. 爬虫的流程
浏览器抓包基本知识
通过浏览器:鼠标右键检查,或者按F12进入浏览器控制台抓包
分析:
URL: URL(Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志,就是指网络地址。
请求分析:
Request URL: https://www.baidu.com/s?ie=utf-8&fr=bks0000&wd=URL%E6%A0%BC 【请求的url】
Request Method: GET 【请求的方式 ,同类还有POST, PUT, DELETE 等】
Status Code: 200 【状态码 200表示请求成功,同类还有2xx 请求成功, 3xx 重定向跳转或迁移 ,4xx 客户端错误(常见404,403) ,5xx 服务器错误(常见501 、 502)】
Remote Address: 14.215.177.38:443 【目标主机IP】
爬虫流程总结:
爬虫的基本工作 就是模拟浏览器的这些功能,不同的是浏览器会自动进行解析,而爬虫需要们手动进行解析,而浏览器会对数据进行渲染,爬虫对数据进行提取保存。
2.2 HTTP和HTTPS
1. http和https的概念
- HTTP
- 超文本传输协议
- 默认端口号:80
- HTTPS
- HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
- 默认端口号:443
HTTPS比HTTP更安全,但是性能更低
2. 我们是如何通过http或者http协议发起请求的
阿里四面试题:
3. http请求和获取响应的过程
- 注意: 这里必须要进行区分,网页源代码和网络请求返回来的响应是完全不相同的两回事
网页源码 ≠ 响应
4.http请求结构分析
在浏览器headers中,点击view source来具体观察其中的请求行,请求头部和请求数据是什么样子的
5.常见的响应状态码
- 200:成功
- 302:临时转移至新的url
- 307:临时转移至新的url
- 404:找不到该页面
- 500:服务器内部错误
- 503:服务不可用,一般是被反爬
小结
- http: 超本文传输协议
- https: HTTP + SSL,即带有安全套接字层的超本文传输协议
- 浏览器先向地址栏中的url发起请求,并获取相应
- 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
- 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应
- 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改
GET /item/503/1227315?fr=aladdin HTTP/1.1 Host: www.baidu.com ……
HTTP/1.1 200 OK Connection: keep-alive ……
- 200:成功
- 302:临时转移至新的url
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试