requests 反爬

本文介绍了如何使用Python的requests库进行模拟浏览器登录并处理Cookie,防止防盗链的方法,以及如何通过代理IP避免被封。首先,通过session进行登录获取Cookie,然后携带Cookie请求目标URL。接着,展示了如何处理视频网站的防盗链机制,包括获取contID,修正srcUrl。最后,讨论了使用代理IP来隐藏真实IP地址,避免在爬取过程中被目标网站封锁。
摘要由CSDN通过智能技术生成

概述

本章内容

  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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值