requests 反爬

概述#

本章内容

  1. 模拟浏览器登录 -> 处理cookie
  2. 防盗链处理 -> 抓取梨视频数据
  3. 代理 -> 防止被封ip
  4. 接入第三方代理

登录 -> 得到cookie

带着cookie 去请求到需要的url

# 必须把上面的两个操作连起来
# 我们可以使用session进行请求 -> session可以认为是一连串的请求,中间cookie不会丢失

import requests

# 会话
session = requests.session()
data = {
    "login":""
    "psd":""
}

# 1. 登录
url = ""
resp = session.post(url, data=data)
print(resp.text)

# 2. 拿书架上的数据
resp = session.get("")
print(resp.json())

防盗链#

"""
1. 拿到contID
2. 拿到url返回的json
3. srcUrl里面的内容修整
4. 下载视频
"""

import requests

# 页面url
url = "https://www.pearvideo.com/video_1061649"
contId = url.split("_")[1]

url = "https://www.pearvideo.com/videoStatus.jsp?contId=1061649&mrd=0.34107718392722197"

headers = {
    # Referer 防盗链:溯源,当前本次请求的上一级是谁
    "Referer": "https://www.pearvideo.com/video_1061649"
}

resp = requests.get(url, headers=headers)
dic = resp.json()
srcUrl = dic["videoInfo"]["videos"]["srcUrl"]
systemTime = dic["systemTime"]

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

# download video
with open("梨视频.mp4", mode="wb") as f:
    f.write(requests.get(srcUrl).content)

代理#

import requests

url = "https://www.baidu.com"

# 准备代理信息
proxy = {
    # 快代理 https://www.kuaidaili.com/free/intr/
    "http": "121.8.215.106:9797",
    "https": "121.8.215.106:9797"
}

# proxies 代理
resp = requests.get(url, proxies=proxy)
resp.encoding = "utf-8"
print(resp.text)

第三方代理接入#

# kuaidaili.com/free
posted @   sroot  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示
主题色彩