request进阶

#用户登陆 得到cookie
#带着cookie 去请求到书架到url
#必须把上面到俩个操作连起来
#session 可以认为是一连串到请求 这个过程中 cookie 不会消失

得到session
在这里插入图片描述
登陆7k小说网
在这里插入图片描述url
在这里插入图片描述
数据不在页面源代码中
在这里插入图片描述
找到数据的url
在这里插入图片描述找到该页面的url
https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919

下面是错误做法
在这里插入图片描述
这是全新的url。不知道 之前的cookie
会话知道cookie


# 用户登陆 得到cookie
#带着cookie 去请求到书架到url
#必须把上面到俩个操作连起来
# session 可以认为是一连串到请求 这个过程中 cookie 不会消失

import requests

session = requests.session()
data = {
"loginName": "152900212258",
"password": "xie29080134804"
}


url = "https://passport.17k.com/ck/user/login"
url1 ="https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919"
resp = session.post(url,data=data)
# print(resp.text)
# print(resp.cookies)
# 刚才的session中是有cookie的 如果直接请求 没有cookie
resp1 = session.get(url1)
print(resp1.json())
resp1.close()
resp.close()


如果直接请求
在这里插入图片描述
在这里插入图片描述


防盗链

梨视频

视频放在video 标签里
在这里插入图片描述
里面的src
https://video.pearvideo.com/mp4/adshort/20181011/cont-1452494-11847427-175011_adpkg-ad_hd.mp4

放入地址栏里 就是该视频

页面源代码中没有 该src。是后期 js脚本生成出来的
所有 到xhr里 重新刷新页面
在这里插入图片描述

在这里插入图片描述
实际视频url。和 开发者模式中srcUrl 区别
在这里插入图片描述在这里插入图片描述
爬取 视频页面的数据。被反爬
在这里插入图片描述防盗链
在这里插入图片描述
意思是 当前视频请求的上一级网址必须是出现该页面的网址才是合理的
在这里插入图片描述

import requests

url = "https://www.pearvideo.com/video_1452494"
contId = url.split("_")[1]

videoStatusUrl = f"https://www.pearvideo.com/videoStatus.jsp?contId={contId}&mrd=0.019516957633259224"
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36",
    "Referer": url,
}
resp = requests.get(videoStatusUrl,headers= headers)
dic = resp.json()
srcUrl = dic['videoInfo']['videos']['srcUrl']
systemTime = dic['systemTime']

srcUrl = srcUrl.replace(systemTime,f"cont-{contId}")

## 下载视频
with open("a.mp4",mode="wb") as f:
    f.write(requests.get(srcUrl).content)
resp.close()




代理

在这里插入图片描述
在这里插入图片描述



import requests
#49.88.148.249:8888
proxies = {

    "https": "http://218.60.8.83:3129"
}
resp = requests.get("https://www.baidu.com",proxies=proxies)
resp.encoding = 'utf-8'
print(resp.text)
resp.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值