1、Requests基本介绍
2、请求与响应的组成
3、Requests发送请求
使用 Requests 发送网络请求非常简单。如果我们要发起一个GET/POST请求,直接调用requests库里的GET/POST方法即可
GET请求
import requests url = "http://japi.juhe.cn/qqevaluate/qqkey=8dbee1fcd8627fb6699bce7b986adc45&qq=283340479" r = requests.get(url) print(r.text)
import requests url = “http://japi.juhe.cn/qqevaluate/qq” par = {"key":"8dbee1fcd8627fb6699bce7b986adc45","qq":"28XXXXX"} r = requests.get(url, params=par) print(r.text) # 打印返回结果 文本
方法一:抓包看头部Content-Type参数: -- application/json --------------------这种就是传json参数 ---application/x-www-form-urlencode -------这种就是传data参数 方法二:直接看参数长相 ----{“name1”:”value1”, “name2”,”value2”} ---这种传json -- name1=value1&name2=value2 这种传data参数
Accept: 请求报头域,用于指定客户端可接受哪些类型的信息 Accept-Language: 指定客户端可接受的语言类型 Accept-Encoding: 指定客户端可接受的编码 Host:用于指定资源主机的IP和端口号,其内容为请求URL的原始服务器或网关的位置 Cookie:网站为了辨别用户进行会话跟踪而存储在用户本地的数据,它的主要功能是维持当前访问会话。 Referer: 用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做资源统计防盗链接处理等。 User-Agent: 可以是服务器识别客户端使用的操作系统及版本,浏览器及版本信息等。所以在做爬虫时要加上此信息,可以伪装浏览器;不加的话很容易被识别为爬虫。 Conten-Type:互联网媒体类型,用来表示具体请求中媒体类型信息;如text/html代表HTML格式,image/gif代表GIF图片,application/json代表JSON类型
r.status_code # 响应状态码 r.content # 字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩 r.headers # 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None r.json() # Requests中内置的JSON解码器 ,json转成python的字典了 r.url # 获取url r.encoding # 编码格式-- r.cookies # 获取返回的cookie r.text # 字符串方式的响应体,会自动根据响应头部的字符编码进行解码r.raise_for_status() # 失败请求(非200响应)抛出异常 r.ok # 返回True / False 状态码在200-400之间 返回True, 状态码在400-600之间返回 False r.history # 有重定向请求的时候,可以查看重定向记录 r.apparent_encoding # 分析响应编码