python_spider 02-爬虫流程

爬虫的基本流程

发起请求—获取响应—解析内容—保存数据

向目标站点发起请求,就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应
服务器能正常响应,会得到一个Response,页面内容类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型
保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件

什么是Request,Response

HTPP Request,就是向目标服务器发送一个网络请求,至于请求方式,有get,post,delete等多种方式,要携带的东西有请求头,请求体,请求方式,目标url等(去吃饭怎么能不带钱呢,是吧)
Response,就是服务器返回给你的数据,格式有很多种json,bit,html等等。
有请求,有返回,这就是一个完整的网络请求

请求方式
主要有:GET/POST两种类型常用,另外还有HEAD/PUT/DELETE/OPTIONS
GET和POST的区别就是:请求的数据GET是在url中,POST则是存放在头部
GET:向指定的资源发出“显示”请求。
POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
HEAD:与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。。
PUT:向指定资源位置上传其最新内容。
DELETE:请求服务器删除Request-URI所标识的资源

URL的格式由三个部分组成:
第一部分是协议(或称为服务方式)。
第二部分是存有该资源的主机IP地址(有时也包括端口号)。
第三部分是主机资源的具体地址,如目录和文件名等。
爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据。

请求头

请求时头部信息,如User-Agent,Host,Cookies等信息,请求百度的请求头部信息参数
在这里插入图片描述

Response中包含了什么

响应状态
有多种响应状态,如:200代表成功,301跳转,404找不到页面,502服务器错误
1xx消息——请求已被服务器接收,继续处理
2xx成功——请求已成功被服务器接收、理解、并接受
3xx重定向——需要后续操作才能完成这一请求
4xx请求错误——请求含有词法错误或者无法被执行
5xx服务器错误——服务器在处理某个正确请求时发生错误 常见代码: 200 OK 请求成功 400 Bad Request 客户端请求有语法错误,不能被服务器所理解 401 Unauthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden 服务器收到请求,但是拒绝提供服务 404 Not Found 请求资源不存在,eg:输入了错误的URL 500 Internal Server Error 服务器发生不可预期的错误 503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常 301 目标永久性转移 302 目标暂时性转移
响应头
如内容类型,类型的长度,服务器信息,设置Cookie,如下图
在这里插入图片描述
响应体
最主要的部分,包含请求资源的内容,如网页HTMl,图片,二进制数据等

如何解析数据

直接处理
Json解析
PyQuery解析处理
正则表达式处理
BeautifulSoup解析处理
XPath解析处理
关于抓取的页面数据和浏览器里看到的不一样的问题
出现这种情况是因为,很多网站中的数据都是通过js,ajax动态加载的,所以直接通过get请求获取的页面和浏览器显示的不同。

保存数据

文本:纯文本,Json,Xml
关系型数据库:如mysql,oracle,sql server等
非关系型数据库:MongoDB,Redis

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值