目录
安装Requests
示例引入
GET请求
抓取网页
抓取二进制数据
POST请求
常用的响应
我们了解urllib的基本用法,但是其中确实有不方便的地方,比如处理网页验证和 ookies时,需要写 Opener 和Handler来处理.。为了更加方便地实现这些操作,就有了更为强大的库request ,有了它, cookies 、登录验证、代理设置等操作都不是事儿。
安装Requests
pin install requests
示例引入
import requests
response = requests.get("https://www.baidu.com")
print(type(response))
print(response.status_code)
print(type(response.text))
print(response.text)
print(response.cookies)
结果
200
]>
import requests
response = requests.get("https://www.baidu.com")
print(type(response))
print(response.status_code)
print(type(response.text))
print(response.text)
print(response.cookies)
结果
200
]>
这里我们调用 get() 方法实现与 urlopen() 相同的操作,得到一个 Response 对象,然后分别输出 Response 的类型、状态码、响应体的类型、以及内容 及cookies
通过运行结果可以发现,它的返回类型是 requests.models .Response 响应体的类型是字符串str, cookies 的类型是Req uestscookieJar
GET请求
HTTP中最常见的请求之一就GET是请求,下面首先来详细了解一下利用 Requests 构建 GET 请求的方法
import requests
data = {
"age":22,
"name":"python"
}
reponse = requests.get("http://192.168.1.104/get",params=data)
print(type(reponse.text))
print(reponse.json())
print(type(reponse.json()))
结果:
{'args': {'age': '22', 'name': 'python'}, 'headers': {'Accept': '**",
"Accept-Encoding": "gzip, deflate",
"Connection": "keep-alive",
"Content-Length": "18",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "192.168.1.104",
"User-Agent": "python-requests/2.25.1"
},
"json": null,
"origin": "192.168.1.101",
"url": "http://192.168.1.104/post"
}
常用的响应
import requests
response = requests.post(url="http://192.168.1.104/post",data=date)
print(type(response.status_code),response.status_code)
print(type(response.headers),response.headers)
print(type(response.cookies),response.cookies)
print(type(response.url),response.url)
print(type(response.history),response.history)
结果:
200
{'Server': 'gunicorn/19.9.0', 'Date': 'Tue, 30 Nov 2021 14:26:55 GMT', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '468', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true'}
http://192.168.1.104/post
[]
这里分别打印输出 status_code 属性得到状态码,输出 headers 属性得到响应头,输出 cookies 属性得到 cookies ,输出 url 属性得到URL ,输出 history 属性得到请求历史
状态码常用来判断请求是否成功,而 requests 还提供了一个 置的状态码查询对象 requests.codes, 示例如下:
import requests
response = requests.post(url="http://192.168.1.104/post",data=date)
exit() if not response.status_code == requests.codes.ok else print("Request Successfully")
结果:
Request Successfully
常用的返回码和响应的查询条件



