requests模块学习笔记

1、发起一个不带参数的get请求:

import requests
# 构建一个get请求的对象
response = requests.get('http://httpbin.org/get')
# 以字符串的形式返回响应的内容
print response.text

2、发起一个带参数的get请求:

import requests
# 以字典的形式构建参数
params = {'name': 'hua', 'age': '23'}
# get请求中params用来接收自定义的参数
response = requests.get('http://httpbin.org/get', params=params)

print response.url
print response.status_code

  get请求中的参数传递,是直接附加在url上的:

# 参数和url使用?进行分隔,多个参数之间,使用&符号进行分隔
http://httpbin.org/get?age=23&name=hua

 

3、公共的方法:

  无论你使用的请求方法是get也好,post也罢,他们都会给你返回一个响应的对象,而针对这个对象有一些特定的方法,能够让你进一步解析响应从而得到你想要的数据。

response.json()          # 以json的形式返回响应内容,对象格式为dict
response.content # 以二进制的形式返回响应内容,对象格式为bytes
response.text # 以字符串的形式返回响应内容,对象格式为str
response.url # 返回请求的url
response.status_code # 返回本次请求的状态码
response.reason # 返回状态码对应的原因
response.headers # 返回响应头
response.cookies # 返回cookice信息
response.raw # 返回原始响应体
response.encoding # 返回编码格式

4、发起一个post请求:

import requests
# 以字典的形式构建参数
data = {'name': 'hua', 'age': '23'}
# post请求中用data接收用户自定义参数
response = requests.post('http://httpbin.org/post', data=data)

print response.status_code

5、自定义请求头:

import requests
# 使用字典的形式构建请求头
header = {'user-agent': 'hua'}
# requests中,使用headers参数接收自定义的请求头信息
response = requests.post('http://httpbin.org/post', headers=header)

6、自定制cookie信息:

import requests
# 以字典的形式构建参数
cookies = {'name': 'hua', 'age': '23'}
# requests中使用cookies用来接收自定义的cookice参数
response = requests.get('http://www.baidu.com', cookies=cookies)

Cookie 的返回对象为RequestsCookieJar,它的行为和字典类似,我们可以创建该对象,并给他进行赋值:

import requests
# 创建一个RequestsCookieJar的对象
jar = requests.cookies.RequestsCookieJar()
# 使用set方法进行赋值 jar.set(
'tasty_cookie', 'yum', domain='httpbin.org', path='/cookies') jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere') url = 'http://httpbin.org/cookies' r = requests.get(url, cookies=jar)

7、保存响应的内容到文件:

import requests

response = requests.get('http://pic1.win4000.com/wallpaper/6/57cd3454a539c.jpg')

with open('dem1o.jpg', 'wb') as img:
    # 每次接收最大1028字节的数据
    for chunk in response.iter_content(1028):
        # 写入到文本中
        img.write(chunk)

 

posted @ 2017-07-30 19:13  还是原来那个我  阅读(111)  评论(0)    收藏  举报