爬虫基本原理和概念

目录

 

爬虫基本流程

1.发起请求

2.获取相应内容

3.解析内容

4.保存数据

Request&Response

Request中包含什么

1.请求方式

2.请求URL(统一资源定位符)

3.请求头(请求的配置信息)

4.请求体

Response中包含什么

1.响应状态

2.响应头

3.响应体

能抓怎样的数据

解析方式

保存数据


爬虫基本流程

1.发起请求

通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器相应

2.获取相应内容

若服务器能正常相应,会得到一个Response,response的内容便是所要获取的页面内容,类型可能有HTML,json字符串,二进制数据(图片视频)等类型

3.解析内容

HTML,可以用正则表达式,网页解析库进行解析

json,直接转为json对象解析

二进制数据,保存或进一步的处理

4.保存数据

可以存为文本,也可以保存至数据库,或者保存特定格式的文件

Request&Response

(1)浏览器发送消息给该网址所在的服务器(HTTP Request)

(2)服务器收到消息后,根据浏览器发送消息的内容,做相应处理,然后把消息回传给服务器(HTTP Responce)

(3)浏览器收到服务器的Responce信息后,会对信息进行相应处理,然后展示

Request中包含什么

1.请求方式

GET   POST

HEAD   PUT   DELETE   OPTIONS

爬虫基本原理和概念

 

GET与POST差别

GET

POST

请求信息

请求信息在链接中

请求信息包含在Form Data

构建请求方式

输入URL回车直接访问

通过构造表单点击表单提交

 

2.请求URL(统一资源定位符)

如一个网页文档,一张图片,一个视频都可以用URL唯一来确定

3.请求头(请求的配置信息)

包含请求时的头部信息

爬虫基本原理和概念

cookie:保持登录会话

User-Agent:指定浏览器请求头

告诉服务器请求的文档类型,携带的cookie,浏览器配置,服务器判断信息是否合法,根据解析结果返回相应的文件内容,爬虫一般加上Request Headers以保证请求正常运行

4.请求体

请求时额外携带的数据

在POST请求方式中的Form Data中

Response中包含什么

1.响应状态

200:正常

300以上:跳转

500以上:服务器处理错误

2.响应头

内容类型,内容长度,服务器信息,设置cooike等

爬虫基本原理和概念

3.响应体

包含请求资源的内容,如网页HTML,图片二进制数据等

能抓怎样的数据

网页文本    HTML文档,Json格式文本等

图片    获取到的是二进制流,将二进制文件保存为图片格式

            with open('文件名','wb') as f:

                f.write(二进制流)

视频    同图片为二进制数据

其他    能请求到的都能获取

解析方式

1.直接处理

2.Json解析

3.正则表达式

4.BeautifulSoup

5.PyQuery

6.XPath

保存数据

1.文本    纯文本,JSon,Xml等

2.关系型数据库    如MySQL,Oracle,SQL Sever等具有结构化表结构形式存储

3.非关系型数据库    如MongoDB,Redis等Key-Value形式存储

4.二进制文件