Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爬虫逃走了”;我的域名#!第条;变成;mydomain?“转义”片段“=article”;,如何检索原始url?_Java_Gwt - Fatal编程技术网

Java 爬虫逃走了”;我的域名#!第条;变成;mydomain?“转义”片段“=article”;,如何检索原始url?

Java 爬虫逃走了”;我的域名#!第条;变成;mydomain?“转义”片段“=article”;,如何检索原始url?,java,gwt,Java,Gwt,好的,下面是谷歌所说的() 当爬虫看到这样的urlwww.example.com/ajax.html#!key=value,它将临时将该url转换为www.example.com/ajax.html?\u转义\u片段\u=key=value 但是,在进行转换时,它也会转义片段中的某些字符。前任: www.example.com/ajax.html!!键=值;car=%到www.example.com/ajax.html?\u转义\u片段\u=key=value;车辆=%25 因此,如果我们想转换

好的,下面是谷歌所说的()

当爬虫看到这样的url
www.example.com/ajax.html#!key=value
,它将临时将该url转换为
www.example.com/ajax.html?\u转义\u片段\u=key=value

但是,在进行转换时,它也会转义片段中的某些字符。前任:
www.example.com/ajax.html!!键=值;car=%
www.example.com/ajax.html?\u转义\u片段\u=key=value;车辆=%25

因此,如果我们想转换
www.example.com/ajax.html?\u转义\u片段\u=key=value;car=%25
返回到原始url,然后我们需要取消片段中所有%XX个字符的替换

谷歌表示:

注意:爬虫在执行过程中会转义片段中的某些字符 转变。要检索原始片段,请确保 取消片段中所有%XX个字符的扫描。更具体地说,是%26 应变成&、%20应变成空格、%23应变成#和 %25%应该变成%,以此类推

但谷歌没有说明如何在java中做到这一点

String originalUrl=changedStr.replace("?_escaped_fragment_=", "!#");
// then what to do next so that all the escaped characters will go back to normal?
这样做可以吗

originalUrl=java.net.URLDecoder.decode(originalUrl, "UTF-8");
我们必须使用哪一个:“UTF-8”或“ASCII”

因此,当爬虫转义url时,它是否使用url.encode()

如果是,那么它使用的是“UTF-8”还是“ASCII”?

您可能想看看。您特别感兴趣的是最后的函数
rewriteQueryString

关键是你在正确的轨道上,关键是调用
urldecker.decode
;您可能还对它周围的包装器代码感兴趣