Python-request模块的基本使用

本文介绍如何使用Python的requests库请求网页内容,包括设置代理、User-Agent、Cookies等,并演示了模拟登录过程,通过Session和Cookies实现对需要登录才能访问的页面进行访问。
请求一个网页
"""
官方文档:https://requests.readthedocs.io/zh_CN/latest/
"""

import requests

proxies = {"http": "http://123.55.114.207:9999"}
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
headers = {
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
}

cookies = {}

r = requests.get("http://www.baidu.com", headers=headers, cookies=cookies)

print(cookies)

print(r.status_code)

模拟session登录身份进入一个网站
"""
模拟session 登录后 访问网站
使用session进行登录后 服务端返回的cookies 与 session
都会自动保存,只要当前对象没有消失 就可以访问需要登录的链接 (在cookies或session不过期的前提下)
"""

import requests

session = requests.session()
headers = {
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
}

data = {
    "email": "xxxxxx.com",
    "password": "xxxxxx"
}

# 尝试登录
p = session.post("https://lanhuapp.com/api/account/login", data, headers=headers)
print(p.content)
print(p.status_code)

# 登录成功后 访问需要登录访问的页面
g = session.get("https://lanhuapp.com/api/account/userinfo")
print("这是登录后获取该地址的信息:[{}]".format(g.content))
print(g.status_code)

print("==" * 50)
session2 = requests.session()
g2 = session2.get("https://lanhuapp.com/api/account/userinfo");
print("这是未登录后获取该地址的信息:[{}]".format(g2.content))
print(g2.status_code)

模拟cookies key参数登录身份访问网站
import requests

# 从网页上登录成功后获取的cookies
cookies = "remember_token=0a239090-ed33-4b5d-b8ba-90725d225075|aa8944958adbfb05e3f10bd7a075da3745822b1e707ab715426c1a32f0bc29f8a2984e683c93b238ac84fdaf521a1aff8a757ffd1b69bbd8aaa7f611729b1ab9; session=.eJyN0EFuAzEIBdC7zLojYTA25DIjbKCJ2qbVJFlFvXtHqrqvWP3N1_s8ly33uJ2X031_xMuyXXw5LURlVKcJnpi1W51lsLCLmfZRe5HQmTA5jFDQlbEgFBYixszKiVqp6VQaZkcbEGnvWVq2AAupQa4upRZqbYZkL91EqI0C08tyQL5i_7BrXO9_tPfP18t1m-eYbysYkoLCGk601sG-Dhm2KnRkR2TofOyoFaf2SSaToqXj7GMAc3OGoiO3bSusKscpAx6xYqXJw1ypemupXQ5ytOCm6eaH7HGL_fdN_1J8_wBFy2JV.Ej4W8w.SYetR72jtRyDFEuRIMkRP7y1480; SERVERID=5d3971ec1def08011cf27337bb70b1e2|1599898995|1599898960"

cookies_handler = {i.split("=")[0]: i.split("=")[1] for i in cookies.split("; ")}

print(cookies_handler)

g = requests.get("https://lanhuapp.com/api/account/userinfo", cookies=cookies_handler)
print("这是登录后获取该地址的信息:[{}]".format(g.content))
print(g.status_code)

g2 = requests.get("https://lanhuapp.com/api/account/userinfo");
print("这是未登录后获取该地址的信息:[{}]".format(g2.content))
print(g2.status_code)

模拟header存储cookies登录后访问页面
import requests

cookies = "remember_token=0a239090-ed33-4b5d-b8ba-90725d225075|aa8944958adbfb05e3f10bd7a075da3745822b1e707ab715426c1a32f0bc29f8a2984e683c93b238ac84fdaf521a1aff8a757ffd1b69bbd8aaa7f611729b1ab9; session=.eJyN0EFuAzEIBdC7zLojYTA25DIjbKCJ2qbVJFlFvXtHqrqvWP3N1_s8ly33uJ2X031_xMuyXXw5LURlVKcJnpi1W51lsLCLmfZRe5HQmTA5jFDQlbEgFBYixszKiVqp6VQaZkcbEGnvWVq2AAupQa4upRZqbYZkL91EqI0C08tyQL5i_7BrXO9_tPfP18t1m-eYbysYkoLCGk601sG-Dhm2KnRkR2TofOyoFaf2SSaToqXj7GMAc3OGoiO3bSusKscpAx6xYqXJw1ypemupXQ5ytOCm6eaH7HGL_fdN_1J8_wBFy2JV.Ej4W8w.SYetR72jtRyDFEuRIMkRP7y1480; SERVERID=5d3971ec1def08011cf27337bb70b1e2|1599900680|1599900680"
headers = {"cookie": cookies,
           "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
           }

g = requests.get("https://lanhuapp.com/api/account/userinfo", headers=headers)
print("这是登录后获取该地址的信息:[{}]".format(g.content))
print(g.status_code)

g2 = requests.get("https://lanhuapp.com/api/account/userinfo")
print("这是未登录后获取该地址的信息:[{}]".format(g2.content))
print(g2.status_code)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值