用python写网络爬虫:1.基础知识

本文介绍了网络技术基础知识,包括HTTP和HTTPS的区别、URL的比喻、超文本概念、HTTP请求与响应结构、GET和POST请求的区别,以及HTML、CSS和JavaScript在网页中的作用。作者以通俗易懂的方式讲解了这些概念,适合初学者了解网络技术的基本原理。
摘要由CSDN通过智能技术生成

目录

1.HTTP基础

1.1 URL

1.2 超文本

1.3 HTTP和HTTPS

1.4 请求

1.4.1 请求方法

1.4.2 请求网址

1.4.3 请求头

1.4.4 请求体

1.5 响应

1.5.1 响应状态码

1.5.2 响应头

1.5.3  响应体

2. 网页基础

2.1 HTML

2.2 CSS

2.3 JavaScript

2.4 定位节点

3.参考书籍


本人非计算机专业,在空闲时总想学点有用的网络知识。由于完全出于兴趣,也就没什么规划,学到哪儿算哪儿吧。学习的时候不由感叹:计算机的术语真是铺天盖地。我习惯的理解方式是通俗化的,总结了一些经验记录在这里,还望各位批评指正。

1.HTTP基础

1.1 URL

像是现实生活中很多资源需要存放在仓库里,网络资源也是这样。网络仓库可能有以下几种名字:URI、URL、URN,其中URL就是我们说的网址。

它们三者的关系大概是这样的:

至于说它们究竟是什么,我一般把URL理解为房子,URL理解为房车;房子我总能找到它的位置,而房车可以到处移动,但我只要找到它的车牌号就可以找到它了。URI就是家,有人以房子为家,有人以房车为家,还有人两种家都有。

在互联网中,URN非常少,几乎所有的URI都是URL,就好像如果有人问你家在哪,一般指的是你的房子在哪一样。所以以后只记住URL是什么应该就够用了。

1.2 超文本

简单理解为源代码吧

1.3 HTTP和HTTPS

HTTP是一种协议,保证了网上的超文本文档高效又准确的传送到你的浏览器上,HTTPS则是HTTP的安全版。

1.4 请求

如果我想对一个URL做些什么事情,我得先向对方服务器发送一个请求。比如说,在浏览器输入网址并回车,就相当于向目标网站发送一个“我要访问”的请求;用爬虫程序获取目标网站的数据,也包含了一个“获取对方数据”的请求。

请求一般有四部分内容:请求方法,请求网址,请求体,请求头。

1.4.1 请求方法

常见的请求方法是GET和POST,它们的含义和区别如下

GET请求

  • 用于从服务器获取数据,通常用于请求页面、图片或其他资源
  • 长度限制在2KB到8KB之间,适合传输少量数据
  • 可以被缓存,可以被书签收藏,可以被历史记录保存
  • 显示,易获取qing

POST请求

  • 用于向服务器提交数据,通常用于表单提交、文件上传等
  • 没有长度限制,适合传输大量数据
  • 不会被缓存,不会被书签收藏,不会被历史记录保存
  • 不显示,安全

1.4.2 请求网址

请求的网址即目标URL

1.4.3 请求头

请求头的作用是让客户端可以向服务器传递一些额外的信息,以便服务器能够更好地理解和处理客户端的请求。

下面是一些常见的请求头

  • Accept:指定客户端可以接受信息的类型
  • Accept-Language:指定客户端能接受的语言类型
  • Accept-Encoding:指定客户端能接受的编码类型
  • Host:服务器可能有多个网站,Host会告诉服务器请求的是哪个具体的网站、域名或虚拟机;是必需的请求头
  • Cookies:服务器存储在用户本地的数据;可以跟踪用户的会话状态(用于保持登录状态,购物车的保存),储存用户的偏好设置(语言偏好,主题偏好等),储存认证信息(登录过的网站隔一段时间再进入会自动登录),跨站点跟踪(跟踪用户在不同网站的活动,进行个性化广告推荐)
  • Referer:告诉服务器客户端是谁,可以帮助服务器做数据统计
  • User-Agent:简称UA,可以给爬虫作伪装,防止被检测出来
  • Content-Type:告诉服务器或客户端发送的数据是什么格式,什么编码

1.4.4 请求体

请求体一般承载的是POST请求的表单数据,对于GET请求,请求体为空

1.5 响应

发出了一个请求,自然得有回应,服务器发出的回应叫“响应”。

响应一般有三部分内容:响应状态码,响应头,响应体

1.5.1 响应状态码

顾名思义,响应状态码表示了响应状态,最经典的例子就是状态码404表示页面找不到(404 NOT FOUND),除此之外,还有200代表正常响应,500代表服务器内部有问题。一般状态码为2打头的表示正常,3打头表示你要改变一些操作,4打头的表示你的请求有问题,5打头表示服务器本身有问题。

常见的响应状态码和含义如下,不用全记住,用的时候查询即可

状态码含义
100
服务器已收到请求的一部分,正在等待其余部分,请求者应当继续提出请求。
101
请求者已要求服务器切换协议,服务器已确认并准备切换
200
服务器已成功处理请求
201
请求成功并且服务器创建了新的资源
202
服务器已接受请求,但尚未处理
203
服务器已成功处理了请求,但返回的信息可能来自另一个源
204
服务器成功处理了请求,但没有返回任何内容
205
服务器成功处理了请求,内容被重置
206
服务器成功处理了部分请求
300
针对请求,服务器可执行多种操作
301
请求的网页已永久移动到新位置,即永久重定向
302
请求的网页暂时跳转到其他页面,即暂时重定向
303
如果原来的请求是POST,重定向目标文档应该通过GET提取
304
此次请求返回的网页未修改,继续使用上次的资源
305
请求者应该使用代理访问该网页
307
请求的资源临时从其他位置响应
400
解析该 请求
401
请求没有进行身份验证或验证未通过
403
服务器拒绝此请求
404
服务器找不到请求的网页
405
服务器禁用了请求中指定的方法
406
无法使用请求的内容响应请求的网页
407
请求者需要使用代理授权
408
超时
409
务器 请求 时发 冲突
410
请求
411
服务器不接受不含有效内容长度标头字段的请求
412
服务器未满足请求者在请求中设置的其中一个前提条件
413
请求实体过大,超出服务器的处理能力
414
请求网址过长,服务器无法处理
415
请求格式不被请求页面支持
416
页面无法提供请求的范围
417
服务器未满足期望请求标头字段的要求
500
服务器遇到错误,无法完成请求
501
服务器不具备完成请求的功能
502
服务器作为网关或代理,从上游服务器收到无效响应
503
服务器目前无法使用
504
服务器作为网关或代理,但是没有及时从上游服务器收到请求
505
服务器不支持请求中所用的HTTP协议版本

1.5.2 响应头

服务器对请求的应答信息

1.5.3  响应体

最重要也最主要的部分,包含了我们需要的数据;用爬虫获取响应后要获取信息的主要来源就是响应体。例如:网页的源代码。

2. 网页基础

网页主要分为三部分:HTML,CSS和JavaScript(这和Java没什么关系),分别可以理解为网页的骨骼、皮肤和肌肉

2.1 HTML

HTML,中文叫超文本标记语言,由一系列的标签组成,标签之间的排列、嵌套可以表示各种结构和内容。标签也可以称为节点,标签之间的关系称为节点树。

每个标签的结构大致都是

<p>这是一个段落</p>

其中<p>是开始标签,</p>是结束标签,“这是一个段落”是标签的内容;在开始标签<p>里,p后可加空格和一些其他的东西,用以表示标签的属性,例如

<a href="https://www.example.com">链接</a> 

2.2 CSS

CSS,中文叫做层叠样式表,可以让你的网页更好看

2.3 JavaScript

JavaScript,简称JS,是一种脚本语言,可以让网页产生交互和动画效果,让网页动起来

如果感兴趣,不妨复制以下代码,写一个html文件,保存到本地并打开

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>This is a Demo</title> 
</head> 
<body> 
<div id= "container">
<div class = "rapper">
<h2 class ="title">Hello World</h2> 
<p class = "text"> Hello,this is a paragraph.</p> 
</div> 
</div> 
</body> 
</html>

结果预览

2.4 定位节点

写代码时,可以根据节点的属性(如id、class……),节点名称来确定节点的位置;方法是通过一定的语法规则,去表示我们目标节点的属性,名称等信息;这种语法规则称为选择器。

比如说:

  • .title表示选择所有class="title"的节点
  • #container表示选择所有id="container"的节点

以后用到相应的选择器再进行练习,不在此罗列了

3.参考书籍

python3 网络爬虫开发实战,崔庆才著

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值