Python爬虫核心知识
第一章:爬虫简介
1.1 什么是爬虫
网络爬虫是一种按照一定规则自动地抓取网络信息的程序或脚本。把这句话拆分一下,爬虫就是一段程序。这段程序的功能就是从网络上采集我们需要的数据。
我们经常接触到的百度、Google等搜索引擎就是爬虫,严格意义来讲,这类传统的搜素引擎都属于通用网络爬虫,另外还有聚焦网络爬虫:根据既定的目标有选择的抓取某一特定内容。它们都是为了从庞大的数据体系中获取有价值的数据。
1.2 爬虫的类型
根据爬虫的系统结构,一般分为:通用网络爬虫、聚焦网络爬虫两种。也有一些教材中会列入增量式爬虫和深层网络爬虫,这里我将它们都归于聚焦网络爬虫一类,因为这类爬虫都是定向地爬取数据。
1.3 爬虫的原理
1.3.1 为什么需要爬虫?
爬虫技术是为了向其他程序提供数据源。如搜索引擎、数据分析行业、大数据等。
1.3.2 为什么要用Python做爬虫?
PHP:对多线程、异步支持不太友好
Java:代码量大,代码相对笨重
C/C++:代码量大,学习成本高,编写难度大
Python:支持模块多、代码简洁、开发效率高。有scrapy框架。
1.3.3 一个爬虫程序的工作流程
(1)发起请求
(2)获取响应内容
(3)解析获取到的响应内容
(4)保存数据
1.4 爬虫相关的一些基础周边知识
1.4.1 HTTP与HTTPS
HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文。
方法 | 描述 |
GET | 请求指定的页面信息,并返回实体主体。 |
HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
DELETE | 请求服务器删除指定的页面。 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能。 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
1.4.2 GET和POST
-
GET : 查询参数都会在URL上显示出来
-
POST : 查询参数和需要提交数据是隐藏在Form表单里的,不会在URL地址上显示出来
1.4.3 状态码
- 200 : 请求成功
- 301 : 永久重定向
- 302 : 临时重定向
- 404 : 请求失败(服务器无法根据客户端的请求找到资源(网页))
- 500 : 服务器内部请求