python网络爬虫——HTTP和爬虫的基本原理(一)

一、HTTP的请求过程

客户端向服务器发送请求,服务器在获取请求后,给服务器反馈数据响应。

在这里插入图片描述

1、请求

一般客户端发送请求中包含以下信息:请求方法、请求的目标网址、请求头、请求体;

请求方法

常见的请求方法有:GET方法和POST方法。

GET请求的参数会直接包含在URL里面,并且提交的数据最多只有1024字节;

POST请求其数据通常以表单的形式传输,提交数据没有限制;

当然还有一些其他请求方式,例如:HEAD、PUT、DELETE、CONNECT等方式。

请求网址

请求的网址,即统一资源定位符URL(Universal Resource Locator),该网址包含了访问协议、访问路径、资源名称。

URL是URI的子集,URI的另一个子集是URN,URN只命名资源而不指定如何定位资源;

在这里插入图片描述

请求头

Accept:请求报头域,用于指定客户端可以接受哪些类型的信息;

Accept-Language:指定客户端可接受的语言类型;

Accept-Encoding:指定客户端可接受的内容编码;

Host:用于指定请求资源的主机IP和端口号;

Cookie:用于网站分辨用户进行会话跟踪而存储在用户本地的数据;

Referer:用来标识这个请求发送的来源;

User-Agent:使服务器识别出客户使用的操作系统及版本,浏览器及版本等信息;

Content-Type:用来表示具体请求中媒体类型信息;

请求体

对GET 类型的请求来说为空,对POST类型的请求来说,请求体中包含请求来的数据表单。

2、响应

服务器返回给客户端的响应信息包括:响应状态码、响应头、响应体;

响应状态码

响应状态码表示服务器的响应状态,常见的有:200表示正常运行,404表示页面未找到,500表示服务器内部发生错误;

在这里插入图片描述

响应头

响应头包含以下常用信息:

Date:响应产生的时间;

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

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

Server:包含服务器的信息;

Content-Type:标识返回的数据类型;

Set-Cookie:设置Cookie;

Expires:指定响应的过期时间;

响应体

响应的正文位于响应体中,请求的数据就位于响应体中。

二、网页基础

1、网页的组成

HTML、CSS、JavaScript

2、网页的结构

在这里插入图片描述

爬虫的基本原理

一、认识爬虫

1、爬取流程(思想)

(1)获取网页

首先要明确需要获取的数据存在于哪一个网页中,获取该网页的URL,申请访问后,一般是获得该网页的源代码,这样就可以从中提取想要的信息了。

(2)提取信息

在第一步获得网页源代码后,需要将数据从源代码中解析出来,最常用的方法是使用正则表达式进行匹配,还可以根据网页节点的特点,使用BeautifulSoup、lxml、XPath等。

注意一点,对于使用JavaScript渲染的网页,需要使用Selenium、Splash这样的库来实现模拟JavaScript的渲染。

(3)保存数据

提取出数据后就需要将数据保存下来,保存的方式多种多样:

  • 保存数据文件为.TXT、JSON文本、excal文件等;
  • 保存数据到数据库,MySQL、MongoDB等;
  • 保存到远程服务器;

(4)自动化处理

在爬取时经常出现一些重复性操作,而这些操作不需要人力去解决,通过自动化处理,使爬虫的爬取工作能够更加高效、有序进行。

2、会话和cookie

会话用来存储特定用户会话所需的属性及配置信息,会话处于服务端;

cookie指某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据,处于客户端;

主要处理用户登录问题。

一般情况下,程序不通知服务器删除会话,服务器不会擅自删除一个会话,除非这个会话超过了失效时间,否则服务器会一直保留该会话。

3、代理的基本原理

代理网络用户去取得网络信息。代理服务器处于客户端和服务器之间,相当于二者的一个信息中转站。

在这里插入图片描述

代理的作用

  • 突破自身的访问权限,能够访问一些平时不能访问的站点;
  • 提高访问速度;
  • 隐藏真实IP,防止自身IP地址被封锁
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值