破解网站禁止复制页面内容和图片(一个图片服务器解决你的疑惑呢?|? )

优采云 发布时间: 2022-01-21 22:16

  破解网站禁止复制页面内容和图片(一个图片服务器解决你的疑惑呢?|?

)

  您是否遇到过以下烦恼?

  在夜深人静的时候,你的脑海里会想到一些有趣的事情,可能是二维的,也可能是三维的。求别人比求自己好。我满怀热情地写了一个爬虫脚本。在你即将完成的那一刻,一道魔法穿透你的眼睛,穿透你的灵魂……

  403 禁止... 403 禁止... 403 禁止...

  年轻人,不要被这个法术打败,我会教你屠龙的技能!

  先说原理:我们每天都访问网页。如果我们从一个网页跳转到另一个网页,http头域会有一个Referer参数。然后镜像服务器通过检测Referer是否来自指定域名进行防盗链。当然不仅仅是图片服务器,还有一些视频服务器,比如B站!

  接下来,我们将通过一个案例向您展示如何解决它:

  我们获取图片的页面来自著名的:/zh/a/494!!!

  代码接下来开始

  

import requests

from bs4 import BeautifulSoup #导入所需库

url = "https://www.pixivision.net/zh/a/4943"

headers = {

'User-Agent':"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"

}

res = requests.get(url,headers=headers)

soup = BeautifulSoup(res.text)

urls = []

for i in soup.find_all("div",class_="am__body")[0].find_all("img"):

url = i.get("src")

if len(url)< 96:

urls.append(url)

  通过上面的代码,urls列表中收录了我们需要的图片的链接。接下来,我们尝试请求图片地址:

  requests.get(urls[0],headers=headers)

# 这一部分是返回内容,不要复制

  可以看到,返回了403,我们无法获取到这个页面的信息。如前所述,这个问题通常是由于Referer参数被破坏造成的。这个图片地址采取了防盗措施,需要对症下药。在请求图片地址中添加请求参数,然后重试:

  headers = {"Referer":url}

requests.get(urls[0],headers=headers)

# 这一部分是返回结果,不要复制

  返回200,我们成功了!

  接下来,我们完成后续代码,思考一下即将完成的伟大业务。是一种小小的幸福!!!

  #完整保存图片的代码如下:

import requests

from bs4 import BeautifulSoup

url = "https://www.pixivision.net/zh/a/4943"

headers = {

&#39;User-Agent&#39;:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"

}

res = requests.get(url,headers=headers)

soup = BeautifulSoup(res.text)

urls = []

for i in soup.find_all("div",class_="am__body")[0].find_all("img"):

url = i.get("src")

if len(url)< 96:

with open(url.split("/")[-1],"wb+") as f:

headers = {"Referer":url}

f.write(requests.get(url,headers=headers).content)

print("==========图片下载完成,快去做你该做的事情=========")

  以上解决了你的疑惑吗?

  如果满意,请关注我的头条号,每天分享一点自动化办公的小知识。

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线