爬虫基本原理讲解(二)

爬虫基本流程

爬虫的定义:请求网站并提取数据的自动化程序
在这里插入图片描述

1.发起请求

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

2.获取相应内容

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

3.解析内容

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

json,直接转为json对象解析

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

4.保存数据

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

Request&Response

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

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

(3)浏览器收到服务器的Responce信息后,会对信息进行相应处理,然后展示
在这里插入图片描述
在这里插入图片描述

put请求的参数会包含在url中,而post则不会

Request中包含什么

1.请求方式

GET POST
HEAD PUT DELETE OPTIONS

在这里插入图片描述

GET与POST差别GETPOST
请求信息请求信息在链接中请求信息包含在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

为什么我们抓到的数据和浏览器中看到的不一样呢?

用库得到的是网页的源代码,而浏览器(elements)中,显示的是经过js渲染的
怎样解决JavaScript渲染的问题?

在这里插入图片描述

保存数据

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

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

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

4.二进制文件
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值