一、图片下载
- 下载图片,需获取到图片的url地址和图片名称,通过向图片url发起请求,之后获取.content
- 注意:
- .text返回的是Unicode型的数据。
- .content返回的是bytes型也就是二进制的数据。
import requests
url = “https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png”
response = requests.get(url).content
with open("图片"+".png","wb") as f:
f.write(response)
二、post请求
方法:
requests.post(url,data=None)
POST请求发送Form表单数据
- 以表单的形式发送post请求
- 注意:非必要不写入自己的cookie!
import requests
url = "https://httpbin.org/post"
data = {"json_style":"json_data"}
resp = requests.post(url,json=data)
print(resp.text)
# 结果
"json": null,
json
- json.loads()
将json字符串转化为python类型
- json.dumps()
将python类型转化为json字符串
三、session
- session方法是requests库发起请求的一种方法,这种方法会自动保存访问页面得到的cookie值,从而再次访问的时候会自动携带cookie,使得操作cookie方便,不需要我们自己添加cookie了。常用于登录。
登录逻辑:
功能:自动更新请求头信息,常用在账号登录的时候,先访问登录页url,再访问数据提交的url。
session的使用
基本的使用方法与requests.get 相似,使用的session的时候需要先创建session对象。
session = requests.session()#创建session对象
session.headers=headers#添加请求头
res_ss=session.post(url_login)
如何模拟登录:
- 先创建一个pwd.ini的文件。
- 写入账号密码
- 导入模块
from configparser import ConfigParser
-
创建ConfigParser对象
cfg = ConfigParser()
r = cfg.read("pwd.ini")
username = cfg.get("username","username")
password = cfg.get("password","password")
print(username,password)
- 把账号密码写进post请求里即可
post_url = "https://passport.17k.com/ck/user/login"
post_data = {
"loginName": username,
"password": password
}
# 创建一个session对象
session = requests.session()
# 使用创建的session对象发送请求
resp = session.post(post_url,data=post_data)
print(resp.text)
完整代码示例:
import requests
from configparser import ConfigParser
# 创建ConfigParser对象
cfg = ConfigParser()
r = cfg.read("pwd.ini")
username = cfg.get("username","username")
password = cfg.get("password","password")
print(username,password)
post_url = "https://passport.17k.com/ck/user/login"
post_data = {
"loginName": username,
"password": password
}
# 创建一个session对象
session = requests.session()
# 使用创建的session对象发送请求
resp = session.post(post_url,data=post_data)
print(resp.text)
标签:username,进阶,url,session,post,password,requests From: https://www.cnblogs.com/LoLong/p/16834249.html