系列文章目录
前言
主要使用requests库实现
一、Requests库
没使用过python或者requests库的同学可以先了解下requests的作用,以及其提供的功能有什么
Python requests 是一个常用的 HTTP 请求库,可以方便地向网站发送 HTTP 请求,并获取响应结果。
requests 模块比 urllib 模块更简洁。
requests有以下方法可使用方法
方法 | 描述 |
---|---|
delete(url, args) | 发送 DELETE 请求到指定 url |
get(url, params, args) | 发送 GET 请求到指定 url |
head(url, args) 发送 | HEAD 请求到指定 url |
patch(url, data, args) | 发送 PATCH 请求到指定 url |
post(url, data, json, args) | 发送 POST 请求到指定 url |
put(url, data, args) | 发送 PUT 请求到指定 url |
request(method, url, args) | 向指定的 url 发送指定的请求方法 |
二、Requests使用
1.基本方法的使用
利用上述的方法,如用request()向指定url发送指定请求:
# 导入 requests 包
import requests
# 发送请求
x = requests.request('get', 'https://www.baidu.com/')
# 返回响应状态码,若status_code为200,则请求成功,否则为失败
print(x.status_code)
上述代码是用request()方法向url发送了一个get类型的请求
其实可以直接用get(),其他方法也同理
# 导入 requests 包
import requests
# 发送请求
x = requests.get('https://www.baidu.com/')
# 返回响应状态码,若status_code为200,则请求成功,否则为失败
print(x.status_code)
2.response对象
在Web开发中,HTTP响应是由服务器发送到客户端的,以回答客户端的HTTP请求。这个响应包含了状态码、响应头和响应体等信息。
是不是看着很熟悉?就是上面request可返回的内容
所以对上面的代码而言,“x”就是一个response对象
利用response的属性和方法,能够满足我们日常的一些开发需求
属性或方法 | 描述 |
---|---|
response.status_code | 响应状态码 |
response.content | 把response对象转换为二进制 |
response.text | 把response对象转换为字符串 |
response.encoding | 定义response对象的编码 |
response.cookies | 获取请求后的cookie |
response.url | 获取请求网址 |
response.json() | 内置的JSON解码器 |
response.headers | 以字典对象存储服务器响应头(字典键不区分大小写 ) |
这次我们返回对象的text:
import requests
# 发送请求
response = requests.get('https://www.baidu.com/')
# 返回网页内容
print(response.text)
执行后看到返回的内容是文本形式的
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css><title>ç¾åº¦ä¸ä¸ï¼ä½ å°±ç¥é</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus=autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=ç¾åº¦ä¸ä¸ class="bg s_btn" autofocus></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>æ°é»</a> <a href=https://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>å°å¾</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>è§é¢</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>è´´å§</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>ç»å½</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">ç»å½</a>');
</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">æ´å¤äº§å</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>å³äºç¾åº¦</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>©2017 Baidu <a href=http://www.baidu.com/duty/>使ç¨ç¾åº¦åå¿è¯»</a> <a href=http://jianyi.baidu.com/ class=cp-feedback>æè§åé¦</a> 京ICPè¯030173å· <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
总结
即使是初学者,只要知道requests内含的方法,以及request对象所包含的属性等,就可以简单的使用requests收发消息了