defget(url, params=None, **kwargs): r"""Sends a GET request. :param url: URL for the new :class:`Request` object. :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`. :param \*\*kwargs: Optional arguments that ``request`` takes. :return: :class:`Response <Response>` object :rtype: requests.Response """ kwargs.setdefault('allow_redirects', True) return request('get', url, params=params, **kwargs)
当你从 API 或者会话调用中收到一个 Response 对象时,request 属性其实是使用了 PreparedRequest。有时在发送请求之前,你需要对 body 或者 header (或者别的什么东西)做一些额外处理
例4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
user_agent = 'Mozilla/5.0(X11; Linux x86_64) AppleWebKit/537.36(KHTML, like Gecko)Chrome/59.0.3071.115 Safari/537.36' headers={'User-Agent':user_agent} # 开启回话 s= requests.Session() req=requests.Request('GET',url='http://baidu.com') # 开始准备一个请求 prepped= s.prepare_request(req)
# do something with prepped.body # do something with prepped.headers prepped.prepare_headers(headers) # 发送以准备好的请求 resp= s.send(prepped,timeout=5) print resp.status_code s.close()