受不了某些不让复制的站点,分享个基于 anyproxy 的自用方案

2022-09-20 18:42:15 +08:00
 simo

有一个是当年发了 10 几年的文章的站点已经无耻到极点! 处理方案有很多,正好最近做相关项目用到 anyproxy ,就先用他临时处理。分享下规则,主要是找复制相关的关键词,其他拦截转发工具也可以用。

规则代码

const replaceList = ['contextmenu ','contextMenu ', 'contextMenu', 'SelectStart', 'selectStart', 'selectstart','dragstart', 'onCopy', 'user-select', 'keypress', 'mousedown', 'keydown', 'keyup', 'keyCode', 'KeyCode', 'which', 'copy']
const replaceCssList = ['xxx']

module.exports={
	*beforeSendResponse(requestDetail,responseDetail) {
		const url = requestDetail.url 

		if(url.indexOf('我发了文章,不登录自己都不能复制!那些 xx 网站') > 0 ) {
			const contype = responseDetail.response.header['Content-Type']
			console.log('isHtml:::::::', contype);
			const isHtml = contype.indexOf('html') > -1
			const isJs = contype.indexOf('javascript') > -1
			console.log('js =>', url);
			const newResponse = responseDetail.response;

			if(isJs){
				// newResponse.body +='-- AnyProxy Hacked! --';
				newResponse.body +='';
				replaceList.map(s => {
					console.log('替换 js=>', s, url);
					const ns = new RegExp(s, 'ig')
					newResponse.body = newResponse.body.replace(ns, '_fk_' + s)
				})
			}

			if(url.substr(url.length-3, 3) == 'css' || isHtml) {
				console.log('?????', newResponse.body.toString());
				replaceCssList.map(s => {
					const ns = new RegExp(s, 'ig')
					newResponse.body = newResponse.body.toString().replace(ns, '') 
				})
			}
			return new Promise((resolve,reject)=>{
				resolve({ response:newResponse });

      });
    }
 }

};

跑起来

anyproxy -i --rule 脚本文件

SwitchyOmega 走起

其他玩法

自己弄个服务器挂上去

1563 次点击
所在节点    分享创造
2 条回复
israinbow
2022-09-20 20:13:39 +08:00
simo
2022-09-20 21:15:29 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/881665

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX