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)

浙公网安备 33010602011771号