python requests get方式怎么设置请求头?

python requests get方式怎么设置请求头?,第1张

Header可以通过Request提供的.add_header()方法进行添加,示例代码如下:

123456789101112# -*- coding:utf-8 -*-

import urllib2import urlliburl = 'http://ah.example.com'half_url = u'/servlet/av/jd?

ai=782&ji=2624743&sn=I'#构造get请求req = urllib2.

Request(url+half_url.

encode('utf-8'))#添加headerreq.add_header('AcceptEncoding', 'gzip,deflate')req.

add_header('User-Agent','Mozilla/5.0')response = urllib2.

urlopen(req)

print response.

Requests支持流式上传,这允许你发送大的数据流或文件而无需先把它们读入内存。要使用流式上传,仅需为你的请求体提供一个类文件对象即可。

读取文件请使用字节的方式,这样Requests会生成正确的Content-Length。

with open('massive-body', 'rb') as f:

requests.post('http://some.url/streamed', data=f)

分块传输编码

对于出去和进来的请求,Requests也支持分块传输编码。要发送一个块编码的请求,仅需为你的请求体提供一个生成器

注意生成器输出应该为bytes

def gen():

yield b'hi'

yield b'there'

requests.post('http://some.url/chunked', data=gen())

For chunked encoded responses, it's best to iterate over the data

using Response.iter_content(). In an ideal situation you'll have set stream=True on the

request, in which case you can iterate chunk-by-chunk by calling iter_content with a chunk

size parameter of None. If you want to set a maximum size of the chunk, you can set a chunk

size parameter to any integer.

最最基本的请求

是python内置的一个http请求库,不需要额外的安装。只需要关注请求的链接,参数,提供了强大的解析。

urllb.request 请求模块

urllib.error 异常处理模块

urllib.parse 解析模块

简单的一个post请求

超时处理

打印出响应类型,状态码,响应头

由于使用urlopen无法传入参数,我们需要解决这个问题

我们需要声明一个request对象,通过这个对象来添加参数

我们还可以分别创建字符串、字典等等来带入到request对象里面

我们还可以通过addheaders方法不断的向原始的requests对象里不断添加

关于代理部分的内容由于条件不足先不做

打印出信息cookies

下面这段程序获取response后声明的cookie对象会被自动赋值

保存cookie文件,两种格式

用文本文件的形式维持登录状态

关于异常处理部分,需要了解有httperror和urlerror两种,父类与子类的关系。

解析,将一个url解析

url拼接

你大概是引入了 urllib 这个模块 然后用了urllib2.urlopen()这个函数?

在之前你

import urllib

import urllib2

然后再

urllib2.urlopen(page)

看看


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11294064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存