抓取某一个网站整站的记录

简介:

 经常由于某些原因我们需要爬取某一个网站或者直接复制某一个站点,到网上找了很多工具进行测试,试了很多各有各的问题,最终选择了Teleport Ultra,用起来效果很好;具体的操作手册等东西就不在这里说了,网上搜索一下有很多,这里主要说遇到的问题:

软件下载地址:http://download.csdn.net/detail/ityouknow/9506423

工具截图:

image

测试抓取的网站为简单心理:www.jiandanxinli.com

抓取后的效果图

image

 

一般我会选择复制100级基本上也就把网站的东西全部copy下来了,但是因为Teleport Ultra 是以UTF-8的编码进行的抓取如果文件中有中文字符,或者gbk编码的文件就会出现乱码如下图:

image

 

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

软件下载地址:http://download.csdn.net/detail/ityouknow/9506429

软件截图:

image

 

绝大数网站再经过这两个步骤应该都已经OK了,但是有的网站的层级结构中用到了中文目录或者中文的文件名就会出现乱码,类似下面的URL地址:

http://www.xxxx.com/.com/question/除了加锁,还有什么方法解决资源竞争的问题?/解决方案.html

这样网站的结构抓取下来就会出现两种乱码:1)文件夹名乱码 2)文件名乱码

遇到这个问题siteRepair-v2.0工具就会报错,我估计是不能识别乱码的文件夹或者文件吧。

 

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

PHP代码:convert.php

复制代码
<?php
function listDir($dir)
{
    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.'<br />';
                         echo '结果: '.str_replace('\\','',mb_convert_encoding($file,"GBK", "UTF-8")).'<br />';
                    }
                }
            }
            closedir($dh);
        }
    }
}
?>
<?php
//开始运行
listDir("./convert");

?>
复制代码

 

在代码的同级目录下,新建 convert文件夹,把乱码的文件放入这个目录,然后执行convert.php即可。


作者:纯洁的微笑 
出处:www.ityouknow.com 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 

本文如对您有帮助,还请多帮 【推荐】 下此文。 
如果喜欢我的文章,请关注我的公众号

分类:  其它
标签:  爬虫

本文转自纯洁的微笑博客博客园博客,原文链接:http://www.cnblogs.com/ityouknow/p/5446199.html,如需转载请自行联系原作者
目录
相关文章
|
Web App开发 缓存 搜索推荐
HTML中meta标签中属性详解并设置页面缓存策略
HTML中meta标签中属性详解并设置页面缓存策略
1480 0
|
消息中间件 Java 物联网
一文搞懂MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布
之前介绍了RabbitMQ以及如何在SpringBoot项目中整合使用RabbitMQ,看过的朋友都说写的比较详细,希望再总结一下目前比较流行的MQTT。所以接下来,就来介绍什么MQTT?它在IoT中有着怎样的作用?如何在项目中使用MQTT?
18785 63
一文搞懂MQTT,如何在SpringBoot中使用MQTT实现消息的订阅和发布
|
存储 缓存 JavaScript
不要过度封装!封装一个最简单的Axios!
前言 axios 是目前最优秀的 HTTP 请求库之一,虽然 axios 已经封装的非常好了,我们可以直接拿过来用。但是在实际的项目中,我们可能还需要对 axios 在封装一下,以便我们更好的管理项目和各个借口。 但是,目前网上有特别多的针对于 axios 在项目中的封装。不得不说,很多大佬封装得非常全面,方方面面都考虑到了。但是我们的每个真的都需要那些封装吗?显然不是的,网上的很多封装其实都显得有点过度封装了! 本篇文章实现最简单 Axios 封装,让小伙伴们扩展起来容易一些。
5807 0
不要过度封装!封装一个最简单的Axios!
|
Java
Java后台返回树形结构的二种方式
Java后台返回树形结构的二种方式
707 0
|
10月前
|
数据可视化 数据管理 项目管理
职场打工人怎么记录日常工作?5款热门工具的优缺点分析
本文介绍了五款高效的工作记录工具,包括板栗看板、Miro、Airtable、Notion 和 Wrike,分别针对任务管理、创意协作、数据库管理、多功能笔记及跨团队协作等不同需求,通过对比它们的使用场景、优缺点及其适用性,帮助读者选择最适合自身需求的工具。
1543 0
职场打工人怎么记录日常工作?5款热门工具的优缺点分析
|
12月前
|
JSON 前端开发 JavaScript
不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
该文章提供了Webpack的基础入门指南,涵盖安装配置、基本使用、加载器(Loaders)、插件(Plugins)的应用,以及如何通过Webpack优化前端项目的打包构建流程。
不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
|
前端开发 JavaScript 开发者
复制粘贴,动画即成:CSS手风琴效果,快速实现!
复制粘贴,动画即成:CSS手风琴效果,快速实现!
|
Docker 容器
docker设置国内镜像源
docker设置国内镜像源
33577 5
|
JavaScript 前端开发 程序员
DatePicker 日期选择器,获取系统默认当前年月日
DatePicker 日期选择器,获取系统默认当前年月日
856 0
|
存储
pnpm修改默认存储位置
pnpm修改默认存储位置
2017 0