Python requests模块详解:参数、代理与HTTP操作

需积分: 10 0 下载量 111 浏览量 更新于2024-09-13 收藏 2KB TXT 举报
"这篇笔记主要介绍了Python的requests模块,涵盖了常用的方法、参数及其实例应用,包括URL参数、表单数据、JSON数据的发送以及代理服务器的设置。" 在Python编程中,`requests`模块是一个非常重要的库,用于执行HTTP请求,如GET、POST等。这个笔记详细讲解了`requests`模块的核心方法和参数,让我们一起深入理解它们。 1. `requests.request()`方法 `requests.request()`是requests库的基础方法,可以用来发起各种HTTP请求。它接受`method`参数,即HTTP方法(如'GET'、'POST'),以及一个URL。还有多个可选的`kwargs`参数,如: - `params`:用于添加URL参数,例如`requests.get(url, params={'key1': 'value1', 'key2': 'value2'})`,这会在URL后面添加查询字符串。 - `data`:用于POST请求中的表单数据,如`requests.post(url, data={'key1': 'value1', 'key2': 'value2'})`。 - `json`:用于POST请求中的JSON数据,如`requests.post(url, json={'key1': 'value1', 'key2': 'value2'})`。 - `headers`:自定义HTTP头,例如设置User-Agent。 - `cookies`:用于管理请求中的cookies。 - `auth`:用于HTTP认证,通常是一个包含用户名和密码的元组。 - `timeout`:设置超时时间,防止因长时间无响应而阻塞程序。 - `files`:用于上传文件。 - `proxies`:设定代理服务器,可以包括HTTP和HTTPS代理。 - `stream`:控制是否立即下载响应内容,默认为True,允许延迟下载。 - `allow_redirects`:控制是否自动处理重定向,默认为True。 - `verify`:验证SSL证书,默认为True,可以关闭以跳过SSL验证。 - `cert`:指定本地SSL证书路径。 2. 参数化请求 - URL参数:通过`params`参数可以方便地向URL中添加参数,如示例所示。 - 表单数据:使用`data`参数发送POST请求,模拟表单提交,通常以键值对形式,如`Content-Type: application/x-www-form-urlencoded`。 - JSON数据:通过`json`参数发送JSON格式的数据,如`Content-Type: application/json`。 3. 代理服务器 `proxies`参数用于设置代理服务器,例如`proxies={'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080'}`,其中可以包含HTTP和HTTPS代理的地址。如果需要登录认证,可以在代理地址后添加如`-l1080-ka`的格式。 例子中,还展示了如何获取百度搜索结果并打开网页,通过`requests.get()`发送GET请求,并将返回的URL打印出来,然后使用`webbrowser.open()`打开浏览器访问该URL。 `requests`模块为Python开发者提供了一个简单易用的接口来处理HTTP请求,无论是在日常开发还是自动化测试中都扮演着不可或缺的角色。通过理解和掌握这些知识点,你可以更高效地与各种Web服务进行交互。
2019-11-06 上传
## request对象的方法使用 ```javascript ``` 该语句用于获取当前网页的相对路径 例如: 访问路径为:http://localhost:8080/hansom/response.jsp **request.getContextPath()**返回虚拟路径: /hansom **request.getScheme()**返回使用的协议:http **request.getServerName()**返回所在服务器的名字:localhost **request.getServerPort()**返回IP端口:8080 以下为个人的request笔记: **request.getProtocol()** 得到协议的名称 如:HTTP/1.0 禁用缓存:(转载:https://blog.csdn.net/lyclngs/article/details/25964559) **response.setHeader("Pragma", "no-cache")** **response.setHeader("Cache-Control", "no-cache")** **response.setHeader( "Pragma", "no-cache" ); response.addHeader( "Cache-Control", "must-revalidate" ); response.addHeader( "Cache-Control", "no-cache" ); response.addHeader( "Cache-Control", "no-store" ); response.setDateHeader("Expires", 0);** 单纯的使用 xmlhttp.setRequestHeader("Cache-Control","no-cache")无效。 Cache-Control头域   Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:   Public指示响应可被任何缓存区缓存。   Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。   no-cache指示请求或响应消息不能缓存   no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。   max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。   min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。   max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。