urllib和requests对比
urllib
(1)一个类型以及六个方法
(2)get请求
(3)post请求
(4)ajax的get请求
(5)ajax的post请求
(6)cookie登录
(7)代理
requests
(1)一个类型六个属性
(2)get请求
(3)post请求
(4)代理
(5)cookie (破解验证码)
requests
- 安装
pip install requests - response的属性以及类型
类型:models.Response
r.text:获取网站源码
r.encoding:访问或定制编码方式
r.url:获取请求的ur1
r.content:响应的字节类型
r.status_code:响应的状态码
r.headers:响应的头信息
一个类型六个属性
import requests
url ='https://www.baidu.com'
response=requests.get(url)
#一个类型六个属性
#Response类型
print(type(response))
#六个属性
#1. r.text:获取网站源码以字符串的形式来返回网页的源码
print(response.text)
#2. r.encoding:访问或定制编码方式
response.encoding='utf-8'
print(response.text)
#3. r.url:获取请求的url
print(response.url)
#4. r.content:响应的字节类型(返回的为二进制数据)
print(response.content)
#5. r.status_code:响应的状态码
print(response.status_code)
#6. r.headers:响应的头信息
print(response.headers)
get请求
#get请求
import requests
url='https://www.baidu.com/s?'
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
data={
'wd':'北京'
}
#url
#params 参数
#kwargs 字典
response=requests.get(url=url,params=data,headers=headers)
content=response.text
print(content)
get请求总结
(1)参数使用params传递
(2)参数无需urlencode编码
(3)不需要请求对象的定制
(4)请求资源路径中问号可以不加也可以加
post请求
#post请求
import requests
url='https://fanyi.baidu.com/sug'
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
}
data={
'kw': 'key'
}
#url请求地址
#data请求参数
#kwargs字典
response=requests.post(url=url,data=data,headers=headers)
content=response.text
print(content)
import json
obj=json.loads(content,encoding='utf-8')
print(obj)
post请求总结
(1)post请求不需要编解码
(2)post请求的参数为data
(3)不需要请求对象的定制