解决csdn网页离线后打开自动跳转并批量处理下载的所有csdn文件

简介: 解决csdn网页离线后打开自动跳转并批量处理下载的所有csdn文件

一、问题

       我们下载到本地的一些不错的csdn文件,有时候需要离线时候打开查看,点击打开会自动跳转首页,这样搞得自己非常烦。

二、原因

      出现这种情况的原因是csdn的index.html里面有个方法onerror进行跳转,当点击本地保存的csdn文件时,会进行自动跳转。onerror方法如下:

image.png

三、解决方法

     1、我们可以notepad++打开,ctrl+H,替换所有的onerror字段为xxxx,然后保存,这样就不会自动跳转了。

     2、那么又出现一种情况,我们需要看的资料有这么多呢,难道一个文件一个文件去保存吗

image.png

     3、可以考虑写个程序,遍历该文件下的所有文件,读出所有内容,将onerror字符串替换为xxxx,这样执行一下,就可以搞定了,花不到10秒,这一堆文件就好了。代码如下。需要的小伙伴可以收藏一下。


(1)先获取保存离线文件的文件夹路径,遍历改路径下的文件和文件夹。


(2)是文件夹就跳过,文件就读取所有内容,并执行替换replaceAll方法。


(3)最后将替换后的内容再次写入文件。

import com.jiankang.filecontentreplace.config.FileConfig;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
/**
 * FileExecute
 *
 * @author jiankang.xu
 * @date 2021/9/20
 */
public class FileExecute {
    public final static String LINE_SEP = System.getProperty("os.name").toLowerCase().contains("linux") ? "\n" : "\r\n";
    public static void main(String[] args) {
        String filepath = "C:\\Users\\徐健康\\Desktop\\0920";
        String result = executeFile(filepath);
        System.out.println(result);
    }
    private static String executeFile(String filepath){
        File file = new File(filepath);
        File[] files = file.listFiles();
        for (File subFile : files) {
            if(subFile.isDirectory()){
                continue;
            }
            if(subFile.isFile()){
                try {
                    List<String> lines = IOUtils.readLines(new FileInputStream(subFile.getAbsolutePath()));
                    String indexContent = String.join(LINE_SEP, lines);
                    indexContent = indexContent.replaceAll("onerror", "xxxx");
                    IOUtils.write(indexContent, new FileOutputStream(subFile.getAbsolutePath()));
                }catch (Exception e){
                }
            }
        }
        return "success";
    }
}

四、总结

       以上就是如何解决csdn网页离线后打开自动跳转的问题,然后写了个脚本批量处理下载的所有csdn文件,觉得不错的话,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。

目录
相关文章
|
XML 存储 JSON
CocosCreator 面试题(十五)Cocos Creator如何内置protobuf JS版本?
CocosCreator 面试题(十五)Cocos Creator如何内置protobuf JS版本?
495 0
Google Earth Engine(GEE)——利用归一化建筑指数NDBI(不透水层)提取建筑物
Google Earth Engine(GEE)——利用归一化建筑指数NDBI(不透水层)提取建筑物
3230 0
Google Earth Engine(GEE)——利用归一化建筑指数NDBI(不透水层)提取建筑物
|
NoSQL Java 关系型数据库
这个评论系统设计碉堡了
先赞后看,南哥助你Java进阶一大半官网给出了Facebook评论系统的高级设计图,Facebook的评论竟然是支持实时刷新的。也就是说用户不用刷新帖子,只要帖子有新的评论就会自动推送到用户端,这里Facebook使用的便是每天在全球有设备在使用的WebSocket技术。我是南哥,一个Java学习与进阶的领路人。相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
554 5
这个评论系统设计碉堡了
|
12月前
|
安全
Python-打印99乘法表的两种方法
本文详细介绍了两种实现99乘法表的方法:使用`while`循环和`for`循环。每种方法都包括了步骤解析、代码演示及优缺点分析。文章旨在帮助编程初学者理解和掌握循环结构的应用,内容通俗易懂,适合编程新手阅读。博主表示欢迎读者反馈,共同进步。
|
存储 算法 程序员
操作系统(12)----页面分配策略
操作系统(12)----页面分配策略
609 1
|
机器学习/深度学习 人工智能 自然语言处理
Google gemini官网入口是什么_谷歌 AI gemini国内怎么使用
随着人工智能(AI)技术的迅猛发展,各大科技公司不断推出更为先进的AI模型,推动技术的边界。Google开发的Gemini便是其中的佼佼者。作为一款大型语言模型(LLM),Gemini旨在处理多种自然语言处理(NLP)任务,如文本生成、翻译、摘要和对话生成。Gemini结合了最新的研究成果和技术,显著提高了自然语言处理的准确性和效率。
|
Linux Shell 网络安全
在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?
在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?
|
数据可视化 数据挖掘 Python
Matplotlib图表类型详解:折线图、柱状图与散点图
【4月更文挑战第17天】本文介绍了Python数据可视化库Matplotlib的三种主要图表类型:折线图、柱状图和散点图。折线图用于显示数据随时间或连续变量的变化趋势,适合多条曲线对比;柱状图适用于展示分类数据的数值大小和比较;散点图则用于揭示两个变量之间的关系和模式。通过示例代码展示了如何使用Matplotlib创建这些图表。
|
Linux C++ iOS开发
NI和EttusResearchUSRP设备之间的区别
NI和EttusResearchUSRP设备之间的区别
352 2
|
网络协议 Unix Linux
【网络安全 | 信息收集】操作系统判定及端口扫描(全网最详析)
【网络安全 | 信息收集】操作系统判定及端口扫描(全网最详析)
521 0