发新话题
打印

关于firefox(火狐)访问getchu的简便方法(完美)

关于firefox(火狐)访问getchu的简便方法(完美)

终于发现了简单方法,mason的重定向脚本,一开始以为只是url
的重定向,实际上应该算是伪造header加上插入自定义script的方式,因为
mason脚本是优先于页面加载的所以可以拦截并改变定向,唉~~这个定向实现得很特殊,adblock plus
不能识别网页内的元素了,应该是用比较特殊的手段转向的。(有时能识别,估计是冲突什么的)~~gm的版本就此打住吧,就当熟悉熟悉js编写了,还是不错
了。还有gm也是应该可以实现的,只是我不会,因为怎样加载body里的页内脚本我还是不怎么会,能加载但加载不到固定位置,唉~~~~~还有即使实现了
因为gm是等页面加载完再运行的所以效率也不会高到哪里去的。
恩研究了下mason,因为mason先于页面加载,然后作者内置了重定向的功能,然后与脚本结合,利用脚本定义重定向规则,很方便就是了。
用法:安装mason插件将下列脚本保存为*****.mason.js后拖到firefox的窗口安装就好了。
引用:

<mason>
Charset=gb2312
Author=metacme
Created=2009/06/16
Updated=
Version=1.0
Website=
Comment=
Description=Getchu.com Redirector
Usage=
Url=^http://(?:.+\.|)getchu\.com/
</mason>
<parts>
part1=^http://(?:www\.)?getchu\.com/@@@L3
part2=^http://(?:dl\.)?getchu\.com/@@@L3
</parts>
<part1>
function _masonRedirect(spec){
return spec.replace(/(?:www\.)?getchu\.com/i, "210.155.150.152");
}
</part1>
<part2>
function _masonRedirect(spec){
return spec.replace(/(?:dl\.)?getchu\.com/i, "125.100.234.28");
}
</part2>





下面的可以无视了






目前上getchu主要是靠代理法和ip法。事实上在线代理很快,但是还是ip法更快更方便,也就是所谓的将"www.getchu.com"替换为 “210.155.150.152”。其实本来可以通过host的dns绕过解决问题的,但是现在的gfw都有关键字屏蔽的,内建host还是会因为关键字而被屏蔽,然后我去搜索了相关的资料,参考无需代理!!用TheWorld/FireFox访问Getchu接近完美的工口方法!!
这篇文章,因为作者犯了一个逻辑上的错误,导致了不完美,作者从links着手,但是犯了一个效率问题,其实不是要把所有的links都更换的(因为你并不会去点开一页里的所有连接),这回导致浪费很多时间去替换文本,其实只要从url的地址栏着手就好了。而且不方便,你输入网址并不会帮你跳转,只会在网页中包含getchu的连接是替换,其实是很不使用的,因为这种情况并不多。现在大多数情况是给出的文本而不是连接。
所以说直接判断url中是否包含www.getchu.com就好,具体脚本如下(这个是完整脚本,可以在Greasemonkey中选择通用*只是多两次判断而已):
引用:
    (function()
{
        var url = document.location;
   
if (url != null)
       {
           
                                if (url.href.indexOf ("www.getchu.com") > 0)
                                {
                                url.href = url.href.replace ("www.getchu.com", "210.155.150.152");
                                }
       }
      
}
)();
当然如果你使用火狐并使用插件Greasemonkey的话,因为Greasemonkey本身有url的条件判断,所以可以简化为:
引用:
    (function()
{
        var url = document.location;
        url.href = url.href.replace ("www.getchu.com", "210.155.150.152");  
}
)();
通过Greasemonkey以http://www.getchu.com/*为判断条件来执行此段语句,就可以完美执行了。无论是速度还是效率都比之前的替换links来的高许多。
抛砖引玉吧,其实许多dns加关键词屏蔽的网站应该都可以如此,其实就是一个内建url跳转,用途还是十分广泛的。

下面提供Greasemonkey的脚本(只要新建脚本并复制就好了,本身有判断,只在getchu时使用并且只判断一次):
更简便的:
引用:
// ==UserScript==
// @name           getchu url localhost
// @namespace      getchu2
// @include        http://www.getchu.com/*
// ==/UserScript==
    (function()
{
document.location.href = document.location.href.replace ("www.getchu.com", "210.155.150.152");     
}
)();
[/quote]

对了,还有一个问题就是刷新的话会导致jquery失效也就是说之前的排版脚本等会失效,一定要在url处按回车
还有补段html页内图像的地址重定位,加了判定,效率高点,当然其实变化不大就是了,因为不高兴写全域脚本,
所以两个还是分开写的好
引用:
// ==UserScript==
// @name          getchu links
// @namespace     getchu1
// @description    getchu links
// @include       http://210.155.150.152/*
// ==/UserScript==
   (function()
{
    var pics = document.getElementsByTagName("img");
var re = /www\.getchu\.com/ig;
for ( var i = 0, pic; pic = pics; i++ ) {
        if (pic.src.indexOf ("www.getchu.com") > 0)
{
pic.src = pic.src.replace(re,"210.155.150.152");
       
}
}
}
)();
[/quote]

终于完全完美了,将网页中的绝对路径的东东通通改为ip路径,可以刷新了。除了之前的转url外再加这个html内联转向就好,包括了html里的link,script,css,img,全部完美转换。
引用:
// ==UserScript==
// @name           getchu links
// @namespace      getchu1
// @description    getchu links
// @include     

  http://210.155.150.152/*

// ==/UserScript==
    (function()
{
    var pics = document.getElementsByTagName("img");
var re = /www\.getchu\.com/ig;
for ( var i = 0, pic; pic = pics; i++ )
           {
    if (pic.src.indexOf ("www.getchu.com") > 0)
         {
pic.src = pic.src.replace(re,"210.155.150.152");
         }
            }
   var scripts = document.getElementsByTagName("script");
var re = /www\.getchu\.com/ig;
for ( var h = 0, script; script = scripts[h]; h++ ) {
     if (script.src.indexOf ("www.getchu.com") > 0)
{
script.src = script.src.replace(re,"210.155.150.152");   
loadJs (script.src);
 }
}
 var csss = document.getElementsByTagName("css");
var re = /www\.getchu\.com/ig;
for ( var r = 0, css; css = csss[r]; r++ ) {
    if (css.src.indexOf ("www.getchu.com") > 0)
{
css.src = css.src.replace(re,"210.155.150.152");   
loadCss (css.src);
 }
}

 var bks = document.getElementsByTagName("link");
var re = /www\.getchu\.com/ig;
for ( var d = 0, bk; bk = bks[d]; d++ )
           {
 if (bk.href.indexOf ("www.getchu.com") > 0)
        {
bk.href = bk.href.replace(re,"210.155.150.152");
        }
            }
 
}
)();

function loadJs(file){
    var scriptTag = document.getElementById('loadScript');
    var head = document.getElementsByTagName('head').item(0);
    if(scriptTag) head.removeChild(scriptTag);
    script = document.createElement('script');
    script.src = file;
    script.type = 'text/javascript';
    script.id = 'loadScript';
    head.appendChild(script);

}
 function loadCss(file){
    var cssTag = document.getElementById('loadCss');
    var head = document.getElementsByTagName('head').item(0);
    if(cssTag) head.removeChild(cssTag);
    css = document.createElement('link');
    css.href = file;
    css.rel = 'stylesheet';
    css.type = 'text/css';
    css.id = 'loadCss';
    head.appendChild(css);
}



[ 本帖最后由 zlx42 于 2009-8-12 04:27 PM 编辑 ]

TOP

我不是电脑高手,怎么办

TOP

终于发现了简单方法,mason的重定向脚本,一开始以为只是url 的重定向,实际上应该算是伪造header加上插入自定义script的方式,因为 mason脚本是优先于页面加载的所以可以拦截并改变定向,唉~~这个定向实现得很特殊,adblock plus 不能识别网页内的元素了,应该是用比较特殊的手段转向的。(有时能识别,估计是冲突什么的)~~gm的版本就此打住吧,就当熟悉熟悉js编写了,还是不错了。还有gm也是应该可以实现的,只是我不会,因为怎样加载body里的页内脚本我还是不怎么会,能加载但加载不到固定位置,唉~~~~~还有即使实现了因为gm是等页面加载完再运行的所以效率也不会高到哪里去的。

恩研究了下mason,因为mason先于页面加载,然后作者内置了重定向的功能,然后与脚本结合,利用脚本定义重定向规则,很方便就是了。
用法:安装mason插件将下列脚本保存为*****.mason.js后拖到firefox的窗口安装就好了。
引用:

<mason>
Charset=gb2312
Author=metacme
Created=2009/06/16
Updated=
Version=1.0
Website=
Comment=
Description=Getchu.com Redirector
Usage=
Url=^http://(?:.+\.|)getchu\.com/
</mason>
<parts>
part1=^http://(?:www\.)?getchu\.com/@@@L3
part2=^http://(?:dl\.)?getchu\.com/@@@L3
</parts>
<part1>
function _masonRedirect(spec){
return spec.replace(/(?:www\.)?getchu\.com/i, "210.155.150.152");
}
</part1>
<part2>
function _masonRedirect(spec){
return spec.replace(/(?:dl\.)?getchu\.com/i, "125.100.234.28");
}
</part2>





[ 本帖最后由 zlx42 于 2009-8-12 04:26 PM 编辑 ]

TOP

我一直用火狐2.0版的,提示升级或者老版不支持不理它,你升级了,反而有麻烦了,地址栏里的记录消除不了等等。

TOP

发新话题
最近访问的版块