爬虫小白系列01期: 从李白杜甫,来看爬虫本质 、 浏览器访问网页原理 、 请求头的概念

众所周知,爬虫的本质是,模拟浏览器打开网页,获取网页中我们需要的那部分数据。

那首先我们应该清楚,普通一般浏览器打开网页的流程和原理是怎样的?

根据生活经验,我们使用浏览器打开网页的步骤一般是这样的

  1. 输入想要访问的网址的链接
  2. 回车之后,略微等待
  3. 得到想要访问的页面

简单的三步背后,底层逻辑是怎样的呢?

图源:https://www.cnblogs.com/malong1992/p/11404396.html;侵删 

以百度网页为例,http://www.baidu.com

我们在浏览器中输入网页地址,并敲下回车;

这时,我们向遥远某处的百度服务器发送了一个请求,说“我想要访问这个网页”

百度服务器接受到这个请求后,需要做两件事:

  1. 首先它要读懂请求的内容
  2. 其次它要核查请求的合法性。如果你是正常合法的浏览器,那OK;否则,直接拒绝你的非法请求;(我百度服务器不是可以随随便欺负的,不是什么阿猫阿狗的要求我都满足的,这样会让我很累,加重我的负担和成本,而且会影响其它合法用户的使用)

随后,百度服务器对我们发送的合法请求进行处理,将所需要的信息传递给浏览器浏览器把具体的内容再呈现给用户


上面的整个过程类似于,两个人互相写信

李白发给杜甫一封书信,说“子美啊,我很想你,你什么时候有空,咱俩出去约一顿?"

 杜甫收到这封书信后,他得确认一下是不是真的李白写的,而不是冒牌货,所以他要查看这封信的笔迹、印章等特征

网图,侵删 

 

 如果查看之后,确认无误,就写一封回信,告诉李白”我这周末就有空,不如黄鹤楼叙叙旧?“

 网图,侵删

我们通过浏览器访问页面的原理大致便如此,只是李白换成了浏览器,杜甫换成了服务终端,来往书信换成了各种请求和响应。

这个时候大家要问了:

杜甫可以通过这封书信的字迹、印章等特征,辨别到底是不是真的李白;

那对于服务终端而言,它应该如何辨别传来的请求,是否合法呢?

原理一样,是通过请求自身携带的信息,又称为“请求头”来辨别

请求头一般包括请求的类型(GET还是POST)发出请求的浏览器类型(User-Agent)等基本信息。

远程服务器通过识别请求头信息,来判断你的请求是否合法;类似于,杜甫通过信件的字迹、印章来辨别是不是真的李白的邀请。

而爬虫的核心问题之一,就是通过“模仿请求头”,来使得远程服务器错认为是合法的浏览器的正常访问需求,从而使得我们能够自如地获取所需要的网页信息。

此时有人或许要问,既然人访问不会出错,为什么一定要让机器模拟呢?
事实上,人工访问发起请求确实可以,但需要一次又一次地在浏览器中输入url,成本很高,效率很低;
当我们应用爬虫,可以把想要请求的地址存在一起,然后用Python代码自动请求,这样人工只需要撰写代码即可,效率大大提升。

 

参考文献

  • 视频资料

    • Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析

    • 2020年Python爬虫全套课程(学完可做项目)【在用】

  • 文字资料

    • 通过浏览器访问网页的原理

    • http请求头【在用】

    • 超详细教程:什么是HTTP请求头/响应头【在用】

    • 你是如何开始能写 Python 爬虫?【在用】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2219635.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

神犇营my0001:春晓

本题来源于神犇营 题目: [my0001] 唐代诗人孟浩然所作的《春晓》是一首家喻户晓的诗,但是校园里更流行改编版的《春晓》。 春眠不觉晓, 处处蚊子咬。 夜里嗡嗡声, 脓包知多少。 现在我们要用刚才所学的知识来输出这首诗的前两句。首先在右边的输入C++程序的基本框架…

世界十大名诗

世界十大名诗 时间:2011-01-07 来源:网络 点击:318次 When You Are Old by William Butler Yeats (1865-1939) WHEN you are old and gray and full of sleep, And nodding by the fire, take down this book, And slowly re…

9月火气大,能认真写代码么?

不羡鸳鸯不羡仙,一行代码调半天。原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。 我在风中藏把刀,斩尽世间秋色。 这句注定要流传千古的名诗,是xjjdo…

html语言登黄鹤楼,《中国诗词大会》命题专家方笑一, 揭秘千古名诗《登黄鹤楼》为何格律“不合格”...

楚天都市报10月26日讯(记者舒均 李辉 通讯员王红念 江萌)10月26日上午,华东师范大学古籍研究所教授、央视 《中国诗词大会》命题专家暨现场学术顾问方笑一做客“黄鹤大讲堂”,带来一场《古诗词与天下名楼》品评锦绣诗词的讲座,受到江城上百名…

NLP 自然语言处理实战

前言 自然语言处理 ( Natural Language Processing, NLP) 是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,用于分析理解机器与人之间的交互,常用的领域有:实体识别、文…

软件行业与就业(导师主讲)

在企业软件应用的整体架构体系中,有一部分被称为中间件,那么什么叫中间件? 中间件(Middleware)是指位于操作系统和应用程序之间的一层软件层,它提供了一组工具和服务,用于简化和增强企业软件应用…

Docker修改阿里源

在一次安装rtmp推流服务时,总是无法下载源,估计是国外资源下载超时照成的,于是想到修改为国内源。 docker pull alfg/nginx-rtmp Using default tag: latest latest: Pulling from alfg/nginx-rtmp 530afca65e2e: Retrying in 7 seconds c20…

试卷模板 html,一年级语文试卷模板

一年级语文试卷模板 每个学期我们都要进行一次考试,为让大家能够考的更好,下面,小编为大家分享一年级语文试卷模板,希望对大家有所帮助! 一、选字填空,再把句子读一读。 元 园 原 圆 员 1.公(   )里的花好看极了…

Qt QGridLayout和QFormLayout案例分析

QGridLayout和QFormLayout是Qt中常用的布局管理器,可以用于在应用程序中设置控件的位置和大小。 QGridLayout网格布局(栅格布局) QGridLayout是一个网格布局管理器,可以将控件放置在一个二维网格中。在QGridLayout中,控件可以跨越多个行和列…

linux中安装RocketMQ以及dashboard

前提: 需要安装jdk8 上传下面的文件到服务器中 新建目录 mkdir rocketmq 将下载后的压缩包上传到阿里云服务器或者虚拟机中去,并解压 unzip rocketmq-all-4.9.2-bin-release.zip 配置环境变量 vim /etc/profile 配置内容: export NAM…

mysql面试题29:大表查询的优化方案

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一下大表查询的优化方案 以下是几种常见的大表优化方案: 分区&…

ubuntu显卡驱动掉了重新装

之前装好的Ubuntu显卡驱动因为系统内核自动升级(以防下次再次出现这种情况现在立刻马上关闭所有自动更新)输入nvidia-smi指令不再提示显卡信息,此时不需要重装系统,再次装显卡驱动即可。方法如下(此方法适用于之前装成…

【java学习】类的方法(17)

文章目录 1. 类方法的基本用法2. 对象的创建和使用3. 练习题4. 方法的调用4.1. 注意事项 类的两个成员:方法和属性 1. 类方法的基本用法 方法是类或对象行为特征的抽象,也称为函数。java 里的方法不能独立存在,所有的方法必须定义在类里。 …

更新内核,显卡驱动崩掉解决办法

以下是在崩掉后,重新启动,nvidia-smi出现的问题: NVIDIA-SMI has failed because it couldnt communicate with NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.这里使用了sudo apt-get install dkms的方…

408-2014

一、单项选择题 1.下列程序段的时间复杂度是_______。 count0; for(k1;k<n;kk*2)for(j1;j<n;j)count; A.O() B.O(n) C.O() D.O(n*n) 解答&#xff1a;C 外层循环的时间复杂度为 O() &#xff0c;内层循环的时间复杂度为 O(n)&#xff0c;因此结果…

gma 2 教程(三)坐标参考系统:1.坐标系和坐标参考系统模块简介

安装 gma&#xff1a;pip install gma 坐标参考系统是地理空间数据表示和位置定位的基础&#xff0c;它是一种用于描述和测量地球表面位置的标准化框架。其定义了坐标系统、基准面和坐标单位等要素&#xff0c;以确保地球上不同地方的位置可以一致、准确地表示和比较。 本章以g…

拥抱产业发展机遇 兑现5G商业价值

[阿联酋&#xff0c;迪拜&#xff0c;2023年10月10日] 今天&#xff0c;以“将5G-A带入现实”为主题的2023全球移动宽带论坛在迪拜举行。本次大会上&#xff0c;华为轮值董事长胡厚崑与GSMA总干事Mats Granryd围绕“5G产业进程与发展”连线对话。胡厚崑指出&#xff0c;“技术发…

计算机论文 指导老师评语,毕业设计指导老师评语(精选5篇)

毕业设计指导老师评语(精选5篇) 在现实生活或工作学习中,许多人都有过写评语的经历,对评语都不陌生吧,通过评语的导向作用,我们可以引导某项工作或教育活动朝正确方向发展。那什么样的评语才好的评语呢?以下是小编帮大家整理的毕业设计指导老师评语(精选5篇),欢迎阅读与收…

计算机系本科毕业论文评阅评语,毕业论文评阅教师评语

毕业论文评阅教师评语 一段忙碌又充实的大学生活要即将结束,大学生们毕业前都要通过最后的毕业论文,毕业论文是一种有计划的检验学生学习成果的形式,写毕业论文需要注意哪些格式呢?以下是小编帮大家整理的毕业论文评阅教师评语,仅供参考,欢迎大家阅读。 1、 本文选题符合…

计算机专业开题报告指导老师意见评语,开题报告指导教师评语

开题报告指导教师评语 在现在社会&#xff0c;报告与我们的生活紧密相连&#xff0c;报告中涉及到专业性术语要解释清楚。相信许多人会觉得报告很难写吧&#xff0c;下面是小编为大家收集的开题报告指导教师评语&#xff0c;仅供参考&#xff0c;希望能够帮助到大家。 开题报告…