【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

这篇具有很好参考价值的文章主要介绍了【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

爬虫开发从0到1全知识教程完整教程(附代码资料)主要内容讲述:爬虫概述。selenium的其它使用方法。Selenium课程概要。常见的反爬手段和解决思路。验证码处理。chrome浏览器使用方法介绍。JS的解析。Mongodb的介绍和安装,小结。mongodb的简单使用,小结。Mongodb的的增删改查,小结。mongodb的聚合操作,2 mongodb的常用管道和表达式。http协议复习。Mongodb的索引操作,小结。Mongodb的权限管理,小结。mongodb和python交互,小结。。scrapy的概念和流程,小结。scrapy的入门使用,小结。scrapy数据建模与请求,小结。scrapy模拟登陆,小结。scrapy管道的使用,小结。scrapy中间件的使用,小结。requests模块。scrapy_redis概念作用和流程,小结。scrapy_redis原理分析并实现断点续爬以及分布式爬虫,小结。scrapy_splash组件的使用,小结。scrapy的日志信息与配置,小结。scrapyd部署scrapy项目。13.Gerapy。13.Gerapy。。scrapy的crawlspider爬虫。appium环境安装。requests模块1. requests模块介绍,2. response响应对象,3. requests模块发送请求,4. requests模块发送post请求,5. 利用requests.session进行状态保持。利用appium自动控制移动设备并提取数据。数据提取概述1. 响应内容的分类,2. 认识xml以及和html的区别。数据提取-jsonpath模块1. jsonpath模块的使用场景,2. jsonpath模块的使用方法,3. jsonpath练习。数据提取-lxml模块1. 了解 lxml模块和xpath语法,2. 谷歌浏览器xpath helper插件的安装和使用,3. xpath的节点关系,4. xpath语法-基础节点选择语法,5. xpath语法-节点修饰语法,6. xpath语法-其他常用节点选择语法,7. lxml模块的安装与使用示例,10. lxml模块中etree.tostring函数的使用。selenium的介绍。selenium提取数据。

全套笔记资料代码移步: 前往gitee仓库查看

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~


【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

爬虫概述

知识点:
  • 了解 爬虫的概念

  • 了解 爬虫的作用

  • 了解 爬虫的分类

  • 掌握 爬虫的流程


1. 爬虫的概念

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

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

  • 原则上,只要是客户端(浏览器)能做的事情,爬虫都能够做
  • 爬虫也只能获取客户端(浏览器)所展示出来的数据

知识点:了解 爬虫的概念

2. 爬虫的作用

爬虫在互联网世界中有很多的作用,比如:

  1. [数据采集](

    1. [抓取微博评论](
    2. [抓取招聘网站的招聘信息](<
    3. [新浪滚动新闻](
    4. [百度新闻网站](
  2. [软件测试](

    1. [爬虫之自动化测试](
    2. [虫师](
  3. [12306抢票](

  4. 网站上的投票

    1. [投票网](
  5. 网络安全

    1. [短信轰炸](

      1. [注册页面1](
      2. [注册页面2](
      3. [注册页面3](
    2. [web漏洞扫描](


知识点:了解 爬虫的作用

3. 爬虫的分类

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

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

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

  • 功能性爬虫,给你喜欢的明星投票、点赞
  • 数据增量爬虫,比如招聘信息

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

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

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

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

知识点:了解 爬虫的分类

4. 爬虫的流程

爬虫的基本流程如图所示

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

知识点:掌握 爬虫的流程

http协议复习

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

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

  • 了解 常见的响应状态码

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


一提起http协议,大家都会想起它是一个应用层协议,那么http协议跟爬虫有什么关系呢?请看下图:

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

1. http以及https的概念和区别

HTTPS比HTTP更安全,但是性能更低

  • HTTP:超文本传输协议,默认端口号是80
    • 超文本:是指超过文本,不仅限于文本;还包括图片、音频、视频等文件
    • 传输协议:是指使用共用约定的固定格式来传递转换成字符串的超文本内容
  • HTTPS:HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协,默认端口号:443
    • SSL对传输的内容(超文本,也就是请求体或响应体)进行加密
  • 可以打开浏览器访问一个url,右键检查,点击net work,点选一个url,查看http协议的形式

知识点:掌握 http以及https的概念和默认端口


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

2.1 特别关注的请求头字段

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

http请求的形式如上图所示,爬虫特别关注以下几个请求头字段

  • Content-Type
  • Host (主机和端口号)
  • Connection (链接类型)
  • Upgrade-Insecure-Requests (升级为HTTPS请求)
  • User-Agent (浏览器名称)
  • Referer (页面跳转处)
  • Cookie (Cookie)
  • Authorization(用于表示HTTP协议中需要认证资源的认证信息,如前边web课程中用于jwt认证)

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

2.2 特别关注的响应头字段

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

http响应的形式如上图所示,爬虫只关注一个响应头字段

  • Set-Cookie (对方服务器设置cookie到用户浏览器的缓存)

知识点:掌握 爬虫关注的请求头和响应头

3. 常见的响应状态码

  • 200:成功
  • 302:跳转,新的url在响应的Location头中给出
  • 303:浏览器对于POST的响应进行重定向至新的url
  • 307:浏览器对于GET的响应重定向至新的url
  • 403:资源不可用;服务器理解客户的请求,但拒绝处理它(没有权限)
  • 404:找不到该页面
  • 500:服务器内部错误
  • 503:服务器由于维护或者负载过重未能应答,在响应中可能可能会携带Retry-After响应头;有可能是因为爬虫频繁访问url,使服务器忽视爬虫的请求,最终返回503响应状态码

我们在学习web知识的时候就已经学过了状态码的相关知识,我们知道这是服务器给我的相关反馈,我们在学习的时候就被教育说应该将真实情况反馈给客户端,但是在爬虫中,可能该站点的开发人员或者运维人员为了阻止数据被爬虫轻易获取,可能在状态码上做手脚,也就是说返回的状态码并不一定就是真实情况,比如:服务器已经识别出你是爬虫,但是为了让你疏忽大意,所以照样返回状态码200,但是响应体重并没有数据。

所有的状态码都不可信,一切以是否从抓包得到的响应中获取到数据为准


知识点:了解 常见的响应状态码


4. 浏览器的运行过程

在回顾完http协议后,我们来了解以下浏览器发送http请求的过程

【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】

4.1 http请求的过程

  1. 浏览器在拿到域名对应的ip后,先向地址栏中的url发起请求,并获取响应
  2. 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应
  3. 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应
  4. 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染

4.2 注意:

但是在爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应(该响应的内容可以是html,css,js,图片等)

浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样,是因为爬虫不具备渲染的能力(当然后续课程中我们会借助其它工具或包来帮助爬虫对响应内容进行渲染)文章来源地址https://www.toymoban.com/news/detail-839924.html

  • 浏览器最终展示的结果是由多个url地址分别发送的多次请求对应的多次响应共同渲染的结果
  • 所以在爬虫中,需要以发送请求的一个url地址对应的响应为准来进行数据的提取

知识点:理解 浏览器展示的结果可以由多次请求对应的多次响应共同渲染出来,而爬虫是一次请求对应一个响应

5. 关于http协议的其它参考阅读

未完待续, 同学们请等待下一期

全套笔记资料代码移步: 前往gitee仓库查看

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~

到了这里,关于【爬虫开发】爬虫从0到1全知识md笔记第1篇:爬虫概述【附代码文档】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】TensorFlow实现线性回归,代码演示。全md文档笔记(代码文档已分享)

    本系列文章md笔记(已分享)主要讨论深度学习相关知识。可以让大家熟练掌握机器学习基础,如分类、回归(含代码),熟练掌握numpy,pandas,sklearn等框架使用。在算法上,掌握神经网络的数学原理,手动实现简单的神经网络结构,在应用上熟练掌握TensorFlow框架使用,掌握神经

    2024年02月21日
    浏览(33)
  • 【性能测试】性能测试工具LoadRunner,参数化关联。全md文档笔记(已分享文档代码)

    本系列文章md笔记(已分享)主要讨论性能测试相关知识。入门阶段:认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试),常用性能测试指标-(吞吐量、并发数、响应时间、点击数...),性能测试工具选择。性能脚本:1. LoadRunner介绍,2. 脚本录制、运行、参数化

    2024年02月21日
    浏览(33)
  • 【机器学习科学库】全md文档笔记:Jupyter Notebook和Matplotlib使用(已分享,附代码)

    本系列文章md笔记(已分享)主要讨论人工智能相关知识。主要内容包括,了解机器学习定义以及应用场景,掌握机器学习基础环境的安装和使用,掌握利用常用的科学计算库对数据进行展示、分析,学会使用jupyter notebook平台完成代码编写运行,应用Matplotlib的基本功能实现图

    2024年02月21日
    浏览(32)
  • 【机器学习算法】KNN鸢尾花种类预测案例和特征预处理。全md文档笔记(已分享,附代码)

    本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用,结合场景解决实际问题。包括K-近邻算法,线性回归,逻

    2024年02月19日
    浏览(34)
  • Python爬虫学习笔记:1688商品详情API 开发API接口文档

      1688API接口是阿里巴巴集团推出的一种开放平台,提供了丰富的数据接口、转换工具以及开发资源,为开发者提供了通用的应用接口及大量数据资源,支持开发者在1688上进行商品搜索、订单管理、交易报表及物流等方面的操作。 1688API接口主要包含以下几类: 商品API:提供

    2024年02月16日
    浏览(29)
  • 【Python爬虫开发基础⑩】selenium概述

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡 往期推荐 : ⭐️前面比较重要的 基础内容 : 【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP) 【Python爬虫开发基础⑦】urllib库的基本使用

    2024年02月12日
    浏览(35)
  • 【Python爬虫开发基础⑤】HTML概述与基本标签详解

    专栏 :python网络爬虫从基础到实战 欢迎订阅!近期还会不断更新~ 往期推荐 : 【Python爬虫开发基础①】Python基础(变量及其命名规范) 【Python爬虫开发基础②】Python基础(正则表达式) 【Python爬虫开发基础③】Python基础(文件操作方法汇总) 【Python爬虫开发基础④】爬虫

    2024年02月09日
    浏览(55)
  • 【机器学习】科学库使用第2篇:机器学习概述,学习目标【附代码文档】

    机器学习(科学计算库)完整教程(附代码资料)主要内容讲述:机器学习(常用科学计算库的使用)基础定位、目标,机器学习概述定位,目标,学习目标,学习目标。机器学习概述,1.3 人工智能主要分支学习目标,学习目标,1 主要分支介绍,2 小结。机器学习概述,1.5 机器学习

    2024年03月20日
    浏览(29)
  • Python进阶知识(1)—— 什么是爬虫?爬文档,爬图片,万物皆可爬,文末附模板

    A bold attempt is half success. 勇敢的尝试是成功的一半。 Python爬虫是一种利用编程语言Python从互联网上自动获取大量数据的技术。通常采用模拟网页浏览器行为,通过访问URL、解析HTML页面并提取数据等操作,实现对网络信息资源的信息抓取和处理,生成所需的数据集合。 调用P

    2024年02月04日
    浏览(41)
  • 大语言模型无代码构建知识图谱概述

            2023年3月15日,ChatGPT4.0的横空出世,将人们对大语言模型的关注推到了风口浪尖。由于其在智能问答、翻译以及文本生成等工作任务上的卓越表现,业界一度出现了不再需要发展知识图谱相关技术的观点,知识图谱相关概念严重受挫。无可置疑的是,大语言模型的

    2024年01月21日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包