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)
看看
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)