php网页抓取工具(Teleport乱码遇到这个问题-v2.0工具就会报错)

优采云 发布时间: 2022-03-06 19:01

  php网页抓取工具(Teleport乱码遇到这个问题-v2.0工具就会报错)

  经常因为某种原因,我们需要爬取某个网站或者直接复制某个站点。我们在网上找了很多工具进行测试,尝试了很多不同的问题。最后,我们选择了 Teleport Ultra 并使用了它。很好; 具体的操作手册和其他的东西这里就不说了。有很多在线搜索。以下是遇到的主要问题:

  工具截图:

  

  抓取后渲染

  

  一般我会选择复制100级,基本上把网站的东西都复制了,但是因为Teleport Ultra是用UTF-8编码取的,如果文件中有汉字,或者gbk编码的文件就会出现乱码如下图:

  

  当然你也可以在浏览器中手动选择UTF-8,但是我们不能每次打开都这样。于是我就去网站找了一个软件叫:TelePort乱码修复工具(siteRepair-v2.0),经过测试可以解决乱码问题,这个工具也会清除一些无效链接和 html 符号等。

  软件截图:

  

  绝大多数网站经过这两步应该就OK了,但是有些网站在层次结构中使用了中文目录或者中文文件名,会出现乱码,类似于下面的URL地址:

  这样,当抓到网站的结构时,会出现两种乱码:1)文件夹名乱码2)文件名乱码

  遇到这个问题,siteRepair-v2.0工具会报错。我猜它无法识别乱码文件夹或文件。

  后来在网上找到了一个PHP程序,简单的修改测试就可以解决这个问题

  PHP代码:convert.php

  {if(is_dir($dir))

  {if ($dh = opendir($dir))

  {while (($file = readdir($dh)) !== false)

  {if((is_dir($dir."/".$file)) && $file!="." && $file!="..")

  {rename($dir."/".$file,$dir."/".mb_convert_encoding($file,"GBK", "UTF-8"));

  listDir($dir."/".$file."/");

  }else{if($file!="." && $file!="..")

  {$name=rename($dir."/".$file,$dir."/".str_replace('\\','',mb_convert_encoding($file,"GBK", "UTF-8"))) ;echo '路径:'.$dir."/".$file.'

  ';echo '结果:'.str_replace('\\','',mb_convert_encoding($file,"GBK", "UTF-8")).'

  ';

  }

  }

  }closedir($dh);

  }

  }

  listDir("./convert");?>

  在代码同级目录下新建convert文件夹,将乱码文件放入该目录,然后执行convert.php。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线