requests

HTTP 协议

HTTP: Hypertext Transfer Protocol.
URL:是通过http协议存取资源的一个Internet路径,对应一个数据资源。

  格式: http://host[:port][path]
  host:合法的Internet主机域名或IP地址
  port:端口号,缺省端口为80
  path:请求资源的路径

requests的7个方法:

1. requests.request()

requests.request(method,url,**kwargs)
#methon 请求方式 对应以上7种方法
#url 对应请求资源
#13个控制访问参数

**kwargs

1.params:字典或字节序列作为参数增加到url
例如:

>>> kv = {'k1':'v1','k2':'v2'}
>>> r = requests.request('GET','http://python123.io/ws',params = kv)
>>> print(r.url)
https://python123.io/ws?k1=v1&k2=v2

2.data: 字典、字节或文件对象,作为Request的内容

r = requests.request('POST','http://python123.io/ws',data = kv)

3.json:JSON格式的内容作为Request的内容

#kv为json格式
r = requests.request('POST','http://python123.io/ws',json = kv)

4.headers:字典,定制http头

#kv为字典
kv = {'user-agent':'chrome/10'}
r = requests.request('POST','http://python123.io/ws',headers = kv)

5.cookies:字典或CookieJar,Request中的cookie
6.auth:元组,支持http认证功能
7.files: 字典,传输文件

#向链接提交文件
fs = {'file': open('data.xls','rb')}
r = requests.request('POST','http://python123.io/ws',files = fa)

8.timeout :设定超时时间,s为单位
r = requests.request('GET','http://www.baidu.com',timeout =10)
9.proxies:字典类型,设定访问服务器,增加登录认证

#隐藏用户IP地址
pxs = {'http': 'http://user:pass@10.10.10.1:1234','https'://10.10.10.1:4321'}
r = requests.request('GET', 'http://www.baidu.com',proxies = pxs)

10.allow_redirects: True/False,默认为True,重定向开关
11.stream:True/False,默认获取内容立即下载开关
12.verify:True/False ,默认认证SSL证书
13.cert:本地SSL证书路径
2.requests.get() #获取资源
requests.get(*url*,*params=None*,***kwarges*)

3. requests.head()#获取头部信息
r = requests.head(url)
r.headers

4.requests.post()#原资源后附加数据

>>> payload = {'key1':'value1','key2':'value2'}
# data = str,"data" = str;data = dict, "form" = dict
>>> r = requests.post('http://httpbin.org/post',data = payload)
>>> print(r.text)
{ 
  "data": "",
  "form": {
    "key1": "value1", 
    "key2": "value2"
  }
}

5. requests.put()#覆盖URL位置资源
与post类似,但原资源被覆盖

6. requests.patch()#修改资源

7.requests.delete()#删除资源


例子

import requests
r = requests.get('http://www.baidu.com)
r.status_code
r.encoding = 'utf-8'
r.text

requests的七个方法


Response对象的属性

import requests
r = requests.get('http://www.baidu.com')
r.status_code
type(r)
r.headers
  1. r.status_code
    200表示成功,404失败
  2. r.text
    url对应的内容
  3. r.encoding
    header中猜测的响应内容编码方式
  4. r.apparent_encoding
    从内容中分析出的响应内容编码方式
  5. r.content
    http相应内容的二进制形式

  1. r.request.headers
    请求头部信息

  1. r.raise_for_status()
    若不是200引发http error

Requests库6种常见异常

  1. requests.ConnectionError
  2. requests.HTTPError
  3. requests.URLRequired
  4. requests.TooManyRedirects
  5. requests.ConnectionTimeout
  6. requests.Timeout

Respose对象异常

r.raise_for_status() 
#如果不是200 ,产生requests.HTTPError

通用代码框架

import requests

def getHtmlText(url):
    try:
        r = requests.get(url)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return '产生异常'

if __name__ == '__main__':
    url = 'http://www.baidu.com'
    print(getHtmlText(url))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,657评论 18 139
  • 安装 pip install requests Response对象 Response对象包含服务器返回的所有信息...
    红茶绅士阅读 1,230评论 0 2
  • requests(爬虫系列之一) 由于最近工作中,与同事对接模拟手机浏览器进行广告模拟跳转。又一次接触用到爬虫的知...
    若与阅读 39,144评论 7 76
  • 蛐蛐困了仍无人入睡, 废寝忘食 而身心疲惫, 若问我们为何要这样受罪, 因为我们是迎战考研的敢死队。 花蕾虽然也需...
    师太娘阅读 259评论 0 1
  • 水粉涂色,没有一点技巧,就是自己涂鸦
    漫黎阅读 177评论 0 0