热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

想玩爬虫?你需要知道一些简单的知识(一)(http)

一、http基本原理:URI:统一资源标识符URL:统一资源定位符简单来说就是网址,https:www.douban.co

一、http基本原理:

URI:统一资源标识符
URL:统一资源定位符
简单来说就是网址,https://www.douban.com/是豆瓣首页的网址,它就是一个URL也是URI。(只是一般情况,其中还有很多细化的知识)

超文本:我们平时看到的网页就是有超文本解析而来,包括图片文字等内容,在浏览器中点击“检查”或者按F12就可以看见HTML源代码,这些代码就是超文本。

协议:简单理解为“规定”,我们访问资源,需要有某些统一的格式、方式等,都由协议规定。网络协议就如同现实世界中的法律。

在URL的开头会有协议,有很多类型,http、https、ftp、sftp、smb等。(可参考书籍:计算机网络)

爬取页面通常要用到的是http和https协议。
HTTP,超文本传输协议,从网络传输超文本数据到本地浏览器的传送协议。
HTTPS,超文本传输安全协议,HTTP的安全版。主要有两个作用:1.建立一个信息安全的通道来保证数据传输的安全;2.确认网站的真实性(点击锁头可查看网站认证之后的真实信息,知识CA机构信任的)。

在浏览器中输入一个URL ,回车,在浏览器中观察到页面内容。这个过程是浏览器向网站所在的服务器发送了一个请求,服务器接收到这个请求后进行处理和解析,然后返回对应的响应,接着传回给浏览器响应里包含了页面的源代码等内容,浏览器再对其进行解析,便将网页呈现了出来。(在浏览器中按F12或者点击右键选择检查就可查看请求和响应的过程)
在这里插入图片描述第一列Name:请求的名称,一般会将RL最后一部分内容当作名称。
第二列Status:响应的状态码,这里显示为 00 代表响应是正常的,通过状态码,我们可以判断发送了请求之后是否得到了正常的响应。
第三列Type:请求的文档类型,这里为document ,代表我们这次请求的是HTML文档,内容就是一些HTML代码。
第四列Initiator:请求源,用来标记请求是由哪个对象或进程发起的。
第五列Size:从服务器下载的文件和请求的资源大小如果是从缓存中取得的资源,则该列会显示台from cache。
第六列Time:发起请求到获取响应所用的总时间。
第七列Waterfall:网络请求的可视化瀑布流。

点开某一个条目可查看具体信息。
General部分:
在这里插入图片描述
Request URL:请求的 URL
Request Method:请求的方法
Status Code:为响应状态码
Remote Address:为远程服务器的地址和端口
Referrer Policy Referrer:判别策略

响应头Response Headers:在这里插入图片描述
Date:响应产生的时间。
Last-Modified:指定资源 最后修改。
Content-Encoding:指定 容的编码。
Server:包含服务器的信息 ,比如 、版本号等。
Content-Type:文档类型 ,指定返回的 类型是 ,如 tex t/ htm 代表返回 HTML 文档,application/x-Javascript !J! 返回 Javascript 件, image jpeg 代表返回图片。
Set COOKIE:设置 COOKIE 应头中的 Set Cook 告诉浏览器需要将此内容放在 COOKIEs次请求携带COOKIEs 请求。
Expires:响应的过期时间,可以使代理务器或浏览器将加载的内容更新到缓存中。如果再次访时,就可直接从缓存中加载,降低服务器负载,缩短加载时间。

请求头Request Headers:
在这里插入图片描述
Accept:请求报头域,用于客户端可接受哪些类型的信息。
Accept-Language:指定客户端可接受的语言类型。
Accept-Encoding:指定客户端可接受的内容编码。
Host:用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位置。
COOKIE:也常用复数形式 COOKIEs ,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据,它的主要功能是维持当前访问会话,例如登陆以后再次打开还是登陆状态。
Referer :此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做来源统计、防盗链处理等。
User-Agent:UA ,一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本,浏览器及版本等信息,在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别出为爬虫。
Content-Type:也叫互联网媒体类型( Internet Media Type )或者 MIME 类型,在 HTT 协议消息头中,它用来表示具体请求中的媒体类型信息。
在爬虫中,如果要构造 POST 请求,需要使用正确的 Content-Type。

请求:
可以分为4部分内容:请求方法( Request Method 请求的网址( Request URL )、请求头( Request Headers 请求体( Request Body)。

请求体:一般承载的内容是 POST 请求中的表单数据,而对于 GET 请求,请求体则为空。

方法:GET、POST(大多在表单提交时发起,例如登陆时)。
区别:
1.GET 请求中的参数包含在 URL 里面,数据可以在 URL 中看到(所以通常不用于登陆因为会能看到密码),而 POST 请求的 URL 会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中;
2.GET 请求提交的数据最多只有 1024 字节,而 POST 方式没有限制。
当然还有很多其他的请求方法。

响应:
由服务端返回给客户端,可以分为部分:响应状态码( Response Status Code )、响应头( Response Headers )和响应体( Response Body)。

响应状态码:表示服务器响应状态,如 200 代表服务器正常响应, 404 代表页面未找到, 500代表服务器内部发生错误

响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码;请求一张图片时的响应体就是图片的二进制数据,做爬虫请求网页后,要解析的内容就是响应体(点击Preview可查看)。如下图CSDN的首页:
在这里插入图片描述
注:此系列博文是本人阅读书籍《Python3网络爬虫开发实战的笔记》的笔记,意在复习巩固自己的知识。想要深入了解的建议阅读《计算机网络》,里面讲解的很全。


推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
  • 这篇文章主要介绍PHP如何使用在全部作用域中始终可用的内置变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 渗透测试基础bypass绕过阻挡我们的WAF(下)
    渗透测试基础-bypass ... [详细]
  • 一.常见基于身份识别进行反爬1通过headers字段来反爬headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫1.1通过headers中的User-A ... [详细]
  • Java大文件HTTP断点续传到服务器该怎么做?
    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传。这里在简要归纳一下,方便记忆 ... [详细]
  • 跨站的艺术XSS Fuzzing 的技巧
    作者|张祖优(Fooying)腾讯云云鼎实验室对于XSS的漏洞挖掘过程,其实就是一个使用Payload不断测试和调整再测试的过程,这个过程我们把它叫做F ... [详细]
author-avatar
xz7777
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有