爬虫基础

爬虫基础

爬虫的概念

模拟浏览器
发送请求
获取响应

爬虫的特点

爬虫能做任何客户端能做的事
爬虫只能获取客户端所展示的数据

爬虫的作用

数据采集

1.抓取微博评论(机器学习舆情监控)
2.抓取招聘网站的招聘信息(数据分析、挖掘)
3.新浪滚动新闻
4.百度新闻网站

软件测试
12306抢票
网站上的投票
网络安全

1.短信轰炸
让程序在无数个网站自动执行用户注册
2.web漏洞扫描

爬虫的分类

根据被爬取网站的数量不同

1.通用爬虫,如搜索引擎
依循链接,漫无目的地一直爬下去
2.聚焦爬虫,如12306抢票
爬取网站的数量固定,某一类网站

根据是否以获取数据为目的

1.功能性爬虫
给你喜欢的明星点赞、投票
2.数据增量爬虫
爬取招聘信息存到数据库

根据url地址和对应页面内容是否改变,数据增量爬虫可以分为

1.url地址变化、内容也随之变化的数量增量爬虫
2.url地址不变、内容变化的数据增量爬虫

爬虫的原理

在这里插入图片描述

1.获取一个url
2.向url发送请求,并获取响应(http协议)
3.如果从响应中提取url,则继续发送请求获取响应
4.如果从响应中提取数据,则将数据进行保存

http协议

http以及https的概念的和区别

1.https比http更安全,但是性能更低(每个包都加密,就慢了)
2.http:超文本传输协议,缺点是明文传输
如果有人截获了报文,就能从报文中获取他想要的东西
3.https:http+ssl(安全套接字层),即带有安全套接字的超文本传输协议,默认端口号:443,ssl对传输的内容(超文本,也就是请求体或响应体)进行加密

爬虫的请求报文

在这里插入图片描述
请求行:GET / HTTP/1.1
在这里插入图片描述
请求头部:Host及以下都是请求头
在这里插入图片描述
常见的请求头字段:
Content-type:
在这里插入图片描述
Host:域名
Connection:keep-alive(长连接)
在这里插入图片描述
Upgrade-Insecure-Requests:将http升级为https,即将http://www.baidu.com重定向到https://www.baidu.com
在这里插入图片描述
User-Agent(用户代理,提供系统信息和浏览器信息):浏览器遵守Mozilla基金会协议,操作系统的一些信息,浏览器引擎信息(浏览器引擎是用于渲染的,比如freemarker模板,能将客户端和数据库的数据结合并呈现在用户面前),等等
在这里插入图片描述
Referer:页面跳转处或者请求发起处(传送过来的链接所在页面的url)
可以认为是一个防盗链,比方说假如我们把当前页面url放在百度帖吧,但是吧友无法访问这个url,只有通过传送过来的链接才能访问.
在这里插入图片描述
Cookie(用于保持会话/状态):
比方说想要爬取某站会员视频,就必须保持登录状态才能模拟客户端向服务器发送请求.

爬虫的响应报文

在这里插入图片描述
常见的响应头字段:
Set-Cookie(对方服务器设置cookie到用户浏览器的缓存)
在这里插入图片描述

浏览器的运行过程

http请求的过程

1.我们在浏览器的地址栏中输入地址,浏览器自动将这个地址拿到DNS域名服务器进行解析,最终解析成ip地址或者端口号,即对服务器地址发起请求,并获取响应
2.在返回的响应内容(html)中,会带有css,js,图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其它请求,并获取相应的响应
3.浏览器每获取一个响应就对展示出的结果进行添加(加载),js、css等内容会修改页面的内容,js也可以重新发送请求,获取响应
4.从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改--------这个过程叫做浏览器的渲染’

爬虫请求的过程

爬虫只会请求url地址,对应地去拿url地址对应的响应(响应的内容可以是css,js,图片等),但它不具备渲染的能力,需要借助其它工具或包来帮助它对响应的内容进行渲染.

总结:

浏览器:发送所有请求,进行渲染
爬虫:只发送指定请求,不会渲染

如果把页面的最终效果想象成一个人:

则这个人需要
骨骼文件:
html静态文件
肌肉文件:
js/ajax请求
皮肤文件:
css/font/图片

抓包过程:

根据发送请求的流程分别在骨骼、肌肉、皮肤响应中按顺序查找数据,
找的到就ok,找不到就接着找

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值