教程:利用第三方服务,制作一个简单的反代理服务器,突破网站反爬虫访问权限
今天在玩漫画网站的时候,发现一个有趣的现象。浏览漫画时,很想把某张图片保存到本地,但是现在的很多漫画网站是通过javascript动态加载图片信息,而且屏蔽了浏览器右键,导致我无法直接获取图片链接。
好吧,说整活就整活。
随机挑选一个网站讲吧
以 www.mh160mh.com 为例:
1.进入网站,随便选择一部漫画打开,随便选择一个章节列表打开
2.这时你会发现,浏览器右键失效了,无论如何点击都没有反应
3.既然右键不行,我们就用快捷键F12,打开审核元素
4.但是右键还是无法使用。不怕,有办法。
5.审核元素模式下,点击console控制台,然后你又会发现,无法粘贴
6.看它警告信息,手动输入allow pasting
7.我用的是chrome,如果用edge,直接输入允许粘贴,感觉edge更人性化,这点值得表扬,哈哈
8.我们直接粘贴这段代码,你会发现右键可以使用了。
document.oncontextmenu = null;
9.直接找到该图片链接,访问你会发现,尽然无法直接访问,出现Sorry, you have been blocked字样
https://mhpic789-5.kingwar.cn/mh160tuku/f/风起苍岚_12094/第2季279话人傀1_52058329/0001.jpg
10.这种情况通常属于反爬虫机制的范畴。网站使用Cloudflare等服务来防止自动化工具(如爬虫、机器人等)抓取网站内容,从而保护网站数据、减轻服务器负担,或防止恶意访问。
接下来是重头戏,怎么办呢,聪明如你肯定能第一时间想到
对的,我们可以使用第三方服务,制作一个简单的反向代理服务器,设置User-Agent的方式,来突破网站反爬虫访问权限
最著名的当属cloudflare
步骤如下:
1.登录到官网地址:https://dash.cloudflare.com/
2.在左侧栏导航找到Workers和Pages
3.点击创建,带点hellow world。最近改版了,有点不太适应,点击hellow word就是了
4.名称随便,直接点击部署,再点击编辑代码,复制如下代码:
async function handleRequest(request) {
// 获取 URL 查询参数
const urlParams = new URL(request.url).searchParams;
const targetUrl = urlParams.get('url'); // 获取 'url' 参数
if (!targetUrl) {
return new Response('Missing URL parameter', { status: 400 });
}
// 设置请求头,模拟一个浏览器访问
const headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', // 修改为第一段代码中的 User-Agent
'Referer': 'https://www.mh160mh.com/kanmanhua/11106/27320361.html', // 保留 Referer 设置
'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7', // 保留 Accept-Language 设置
'Accept-Encoding': 'gzip, deflate, br', // 可选,模拟浏览器的压缩支持
'Accept': 'image/webp,image/apng,image/*,*/*;q=0.8', // 适当的 Accept 头部
};
try {
// 使用 fetch 请求目标 URL
const response = await fetch(targetUrl, { headers });
// 返回目标 URL 的响应内容
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: response.headers,
});
} catch (err) {
return new Response('Error fetching the URL', { status: 500 });
}
}
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
5.直接点击部署,完成后,记得绑定自己的域名,至于为什么,你懂得。
6.之后你就可以按照下面的方式访问图片,然后下载到本地了
https://你的域名/?url=https://图片.jpg
结束语录:
很简单的一个反代理,朋友们可以参考这种方式,去自定义内容,很多地方都用的到。哈哈
下面再提供一个项目,大家自己去研究,很简单的,本人不过多介绍。这里仅供朋友们学习探讨使用,请勿用于非法用途。
- Author: 作者
- Link: https://www.viliv.xyz/posts/2025-03-26-%E5%88%A9%E7%94%A8%E7%AC%AC%E4%B8%89%E6%96%B9%E6%9C%8D%E5%8A%A1%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%E5%8F%8D%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AA%81%E7%A0%B4%E7%BD%91%E7%AB%99%E5%8F%8D%E7%88%AC%E8%99%AB%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90/
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.