request对象_爬虫:request库的简介

d8ab0c5af2a8fc719f017329f3eae2fe.png

一、 request库的安装

在命令行输入pip install requests进行安装

a50087206ade67b4b8aeb582019eb8fd.png

随后进行调用,发现成功

二、 request库的最常用方法:get 方法

r= request.get(url)包括两个(对象)请求,其中一个为request请求,即向服务器请求资源的request对象,以及Response请求,即包含从服务器返回的所有资源

完整标准格式:request.get(url,params=None,**kwargs)

其中,url为获取页面的链接,params为额外参数,字典或者字节流格式,其为可选。**kwargs为12个控制访问的参数。

Response对象:

b172dbd8558518b09de124f968ee5ef1.png

访问百度主页,状态码为200,即表示正常。类型为response。也包括了我们请求的request信息。

4a890c01ed04c3e82c74977840529e14.png

可修改r.encoding的格式,而不使用其本身自定义的格式:

5a5abbe7d002e3f4169d17732af3bcee.png

如果header中不存在charset字段,则默认编码为ISO-8859—1,encoding并未分析内容,但是apparent_encoding分析了其中的内容。

三、 爬取网页的通用代码框架

00093fea442500b5a7b64baf1074b479.png

def getHTMLText(url):

try:

r=requests.get(url,timeout=30) #得到网页,设定时间

r.raise_for_status()#如果状态不是200,引发HTTPError异常

r.encoding=r.apparent_encoding#替代,使得返回网页的内容是正确的

return r.text

except;

return “产生异常”

ps. If __name__==”__main__”的含义

548828fe28d89bf0a1926f84aab32ac9.png

四、 HTTP 协议和request库的主要方法

Hypertext Transfer Protocol,超文本传输协议。

基于“请求和相应”模式的、无状态的应用层协议。

即用户发起请求,进行相应。无状态即表示第一次响应和第二次响应之间没有关系。

url为作为定位网络资源的标识,格式http://host[:post][path]

host为合法的主机域名或者ip地址

post端口号,path为路径。

185703601d0b9ceb44569ec39040a15f.png

abef6d6de6ade796da04b69aa41a5d2d.png

注:理解patch和put的区别:

假设url位置有一组数据,包括name、id等。

采用patch,仅向url提交name的局部更新申请(节省网络带宽)

采用put,必须将所有的20个字段一并提交到url,未提交字段将会被删除。

Head方法即为展示头部内容,用较少流量获取资源

Post,键值对默认存于表单。若提交data,则存于data。

五、 request主要方法解析

requests.request(method,url,**kwargs)

method即为包括get,head,post,put,patch,delete,options(获取和客户端打交道的参数)

**kwargs访问控制的参数,均为可选项。

1、Params:(修改)字典或字节序列,作为参数(键值对)增加到url中

acf693695569772d289c30af6a281092.png

2、Data:字典、字节序列或文件对象,作为request内容

存到链接下,并不是直接存到url里面

3、json 作为request内容

4、headers字典、HTTP定制头。头字段

c929f0188880a8ba3d952a1208f2a70f.png

模拟浏览器、

5、cookies 从HTTP解读字典格式

6、auth字段,元组类型,支持HTTP认证

7、files 字典类型,传输文件:

97d86166b83b77814e8cc57b4b9fbe47.png

向链接提交文件

8、timeout 时间内未返回产生timeout

9、proxies:字典类型,设定访问服务器,增加登录认证:

举例:

8631dc7be369a06f2eb65858da0b2dbf.png

即,使用第一行的用户名,以及第二行的IP地址进行访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值