python-爬虫基础

一、爬虫的概念

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

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

  • 原则上,只要是客户端(浏览器)能做的事情,爬虫都能够做

  • 爬虫也只能获取客户端(浏览器)所展示出来的数据

二、爬虫的作用

  1. 数据采集

  1. 抓取微博评论(机器学习舆情监控)

  1. 抓取招聘网站的招聘信息(数据分析、挖掘)

  1. 新浪滚动新闻

  1. 百度新闻网站

  1. 软件测试

  1. 爬虫之自动化测试

  1. 虫师

  1. 12306抢票

  1. 网站上的投票

  1. 投票网

  1. 网络安全

  1. 短信轰炸

  1. web漏洞扫描

三、爬虫的分类

3.1 根据被爬取网站的数量不同,可以分为:

  • 通用爬虫,如 搜索引擎

  • 聚焦爬虫,如12306抢票,或专门抓取某一个(某一类)网站数据

3.2 根据是否以获取数据为目的,可以分为:

  • 功能性爬虫,给你喜欢的明星投票、点赞

  • 数据增量爬虫,比如招聘信息

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

  • 基于url地址变化、内容也随之变化的数据增量爬虫

  • url地址不变、内容变化的数据增量爬虫

四、爬虫的流程

  1. 获取一个url

  1. 向url发送请求,并获取响应(需要http协议)

  1. 如果从响应中提取url,则继续发送请求获取响应

  1. 如果从响应中提取数据,则将数据进行保存

五、复习http请求

  • 掌握 http以及https的概念和默认端口

  • 掌握 爬虫关注的请求头和响应头

  • 了解 常见的响应状态码

  • 理解 浏览器和爬虫爬取的区别

1. http以及https的概念和区别(测试面试题)

HTTPS比HTTP更安全,但是性能更低
  • HTTP:超文本传输协议,默认端口号是80

  • 超文本:是指超过文本,不仅限于文本;还包括图片、音频、视频等文件

  • 传输协议:是指使用共用约定的固定格式来传递转换成字符串的超文本内容

  • HTTPS:HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协,默认端口号:443

  • SSL对传输的内容(超文本,也就是请求体或响应体)进行加密

  • 可以打开浏览器访问一个url,右键检查,点击net work,点选一个url,查看http协议的形式

2. 爬虫特别关注的请求头和响应头

  • Content-Type

  • Host (主机和端口号)

  • Connection (链接类型)

  • Upgrade-Insecure-Requests (升级为HTTPS请求)

  • User-Agent (浏览器名称)

  • Referer (页面跳转处)

  • Cookie (Cookie)

  • Authorization(用于表示HTTP协议中需要认证资源的认证信息,如前边web课程中用于jwt认证)

加粗的请求头为常用请求头,在服务器被用来进行爬虫识别的频率最高,相较于其余的请求头更为重要,但是这里需要注意的是并不意味这其余的不重要,因为有的网站的运维或者开发人员可能剑走偏锋,会使用一些比较不常见的请求头来进行爬虫的甄别

3. 常见的响应状态码(测试面试)

  • 200:成功

  • 302:跳转,新的url在响应的Location头中给出

  • 303:浏览器对于POST的响应进行重定向至新的url

  • 307:浏览器对于GET的响应重定向至新的url

  • 403:资源不可用;服务器理解客户的请求,但拒绝处理它(没有权限)

  • 404:找不到该页面

  • 500:服务器内部错误

  • 503:服务器由于维护或者负载过重未能应答,在响应中可能可能会携带Retry-After响应头;有可能是因为爬虫频繁访问url,使服务器忽视爬虫的请求,最终返回503响应状态码

你可能感兴趣的:(python,开发语言,pycharm)