在写爬虫之前需要了解的一些基础知识

HTTP原理

URI:Uniform Resource Identifier 统一资源标志符

URL: Uniform Resource Locator 统一资源定位符 (UPL是URI的子集)

超文本:hypertext,如网页的源代码HTML就可以称作超文本

HTTP: Hyper Text Transfer Protocol 超文本传输协议

HTTPS: Hyper Text Transfer Protocol Secure Socket Layer 简单讲是HTTP的安全版,即HTTP下加入SSL层

请求

请求,由客户端向服务端发出,可以分为4部分内容:请求方法(Request Method)、 请求的网址(Request URL)、请求头(Request Header)、请求体(Request Body).

请求方法: 常见的请求方法有两种:GET和POST 二者有以下区别: 1.GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL不会包含这些数据, 数据都是通过表单形势传输的,会包含在请求体中。 2.GET请求提交的数据最多只有1024个字节,而POST方法没有限制。

其他请求方法

GET             请求指定的页面信息,并返回实体主体。

HEAD          类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头

POST          向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT            从客户端向服务器传送的数据取代指定的文档的内容。

DELETE      请求服务器删除指定的页面。 CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

OPTIONS   允许客户端查看服务器的性能。

TRACE        回显服务器收到的请求,主要用于测试或诊断。

请求头: 请求头,用来说明服务器要使用的附加信息,比较重要的信息有Cookie,Referer,User—Agent等。

请求体: 请求体一般承载的内容是POST请求中的表单数据,而对GET请求,请求体则为空 !Content-Type和POST提交数据的关系! application/x-www-form-urlencoded 表单数据 multipart/form-data 表单文件上传 application/json 序列化JSON数据 text/xml XML数据

响应: 响应,由服务器返回给客户端,可以分为三个部分:响应状态码(Response Status Code)、响应头(Response Header)、响应体(Response Body).

响应状态码: 下面是常见的HTTP状态码:

200 - 请求成功

301 - 资源(网页等)被永久转移到其它URL

404 - 请求的资源(网页等)不存在

500 - 内部服务器错误

 https://www.runoob.com/http/http-status-codes.html 更多响应码访问

响应头: 响应头包含了服务器对请求的应答信息,如Content-Type、Server、Set-Cookie等。

下面简要说明一些常用的头信息:

Date: 标识响应产生的时间。

Last-Modified:指定资源的最后修改时间

Content-encoding: 指定响应内容的编码

Server:包含服务器的信息,比如名称、版本号等。

Content-Type:文档类型,指定返回的数据类型是什么

Set-Cookie:设置Cookie.响应头中的Set-Cookie告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies请求

Expires:指定响应的过期时间,可以使代理服务器或浏览器将加载的内容更新到缓存中。如果再次访问时,就可以直接从缓存中加载,降低服务器负载,缩短加载时间。

响应体: 相应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码; 请求一张图片时,它的响应体就是图片的二进制数据。我们做爬虫请求网页后,要解析的内容就是响应体。

爬虫的基本原理:

爬虫概述简单来说,爬虫就是获取网页并提取和保存信息的自动化程序

1.获取网页 爬虫首先要做的就是获取网页的源代码,Python中有urlib、request等库帮助我们获取。

2.提取信息 最通用的方法是采用正则表达式提取,这是一个万能的方法,但是在构造正则表达式时比较复杂且容易出错。 另外,由于网页的结构有一定的规则,所以还有一些根据网页结点属性、CSS选择器或XPath来提取网页信息的库, 如Beautiful Sou、pyquery、lxml等。使用这些库,我们可以高效快速地从中提取网页信息,如节点的属性、文本值等。 提取信息是爬虫非常重要的部分,它可以使杂乱的数据变得条理清晰,以便我们后续处理和分析数据。

3.保存数据 提取信息后,我们一般会将提取到的数据保存到某处以便后续使用。这里保存形式多种多样, 如可以简单保存为TXT文本或JSON文本,也可以保存到数据库,如MySQL和MongoDB等,也可以 保存至远程服务器,如借助SFTP进行操作等。

4.自动化程序 说到自动化程序,意思是说爬虫可以代替人来完成这些操作。首先,我们手工当然可以提取这些信息, 但是当量特别大或者想快速获取大量数据的话,肯定还是要借助程序。爬虫就是代替我们完成这份工作的自动化程序, 它可以在抓取过程中进行各种异常处理、错误重试等操作,确保爬取持续高效地进行。

会话(session)和cookies 会话:

会话:会话对象用来储存特定用户会话所需的属性及配置信息。

Cookies: 指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据。

代理的基本原理: 代理实际上指代理服务器,是网络信息的中转站,实现IP伪装。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值