csdn博客的正文的图片一般不能直接复制,需要复制到微信等再粘贴出来,比较麻烦

因此写了个工具类,方便进行下载,可以方便的生成html和word

最关键的是,可以原封不动的保留格式,顶多细节有小出入

需要jsoup和poi

package test.test2019;import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;/*** Created by admin on 2019/1/15.*/
public class JsoupTest {/*** 从csdn读取和加工正文* @param uriStr* @return*/private static String readHtml(String uriStr){StringBuffer sb=new StringBuffer();sb.append("<html><head>");try {URI uri=new URI(uriStr);Document doc= Jsoup.parse(uri.toURL(),10000);sb.append(doc.select("style").outerHtml());Elements elements=doc.select("link[rel=\"stylesheet\"]");String url=null;for(Element element:elements){url=element.attr("href");sb.append("<style type=\"text/css\" url='");sb.append(url);sb.append("'>");sb.append(IOUtils.toString(new URI(url),"UTF-8"));sb.append("</style>");sb.append("\r\n");}sb.append("<style type=\"text/css\">");sb.append("#article_content,.fontclass{font-family:\"Microsoft YaHei\"}");sb.append("</style>");sb.append("</head><body>");sb.append("<h1 class='title-article'>下载地址:<b>").append(uriStr).append("</b></h1>");doc.select("#article_content p").toggleClass("fontclass");sb.append(doc.select(".blog-content-box").outerHtml());sb.append("</body></html>");} catch (Exception e) {e.printStackTrace();}return sb.toString();}public static boolean writeDocFile( File file, String html,String encoding) {boolean w = false;File fileDir=file.getParentFile();if (!fileDir.exists()) {fileDir.mkdirs();}try {byte b[] = html.getBytes(encoding);ByteArrayInputStream bais = new ByteArrayInputStream(b);POIFSFileSystem poifs = new POIFSFileSystem();DirectoryEntry directory = poifs.getRoot();DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);FileOutputStream ostream = new FileOutputStream(file);poifs.writeFilesystem(ostream);bais.close();ostream.close();}catch(IOException e){e.printStackTrace();}return w;}/**从csdn截取正文* @param uriStr* @throws IOException* @throws URISyntaxException*/public static void writeCSDNWordFile(String uriStr,File wordFile)  {writeDocFile(wordFile,readHtml(uriStr),"UTF-8");}/**从csdn截取正文* @param uriStr* @throws IOException* @throws URISyntaxException*/public static void writeCSDNHtmlFile(String uriStr,File localFile) throws IOException {FileUtils.writeStringToFile(localFile,readHtml(uriStr),"UTF-8");}public static void main(String[] args) throws IOException, URISyntaxException {String html="D:/test/word/jxl-excel.html";String doc="D:/test/word/jxl-excel.doc";String uri="https://blog.csdn.net/a1091662876/article/details/87722035";writeCSDNHtmlFile(uri,new File(html));writeCSDNWordFile(uri,new File(doc));}
}

如何方便的下载csdn博客正文相关推荐

  1. Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片

    Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片 其实没太大用,就是方便一些,因为现在各个平台之间的图片都不能共享,比如说在 CSDN 不能用简书的图片, ...

  2. 8.一个项目实战(下载CSDN博客文章)

    专栏地址 ʅ(‾◡◝)ʃ 前言 要写一个下载器,首先要实现一个接口函数,而这个函数可以对请求的数据进行处理也就是爬虫,其次才是写图形化界面 接口的实现 其实CSDN的浏览器页面的接口很复杂,是直接通过 ...

  3. 备份CSDN博客正文到本地存档

    大哥有了新想法,然而没有技术,令人欣慰的是大哥想到了我,于是我便答应免费帮个忙,这是一个基于云的项目,具体细节也就不透露了,然而在实现的过程中,其中一个模块我觉得可以自用,于是我就想把这个模块抽出来, ...

  4. 【C++鼠标键盘操作】自动下载CSDN博客文章到PDF

    思路 这个方法的通用性比较差,用到了一个火狐的插件,这个插件可以将单篇csdn博客保存成pdf,如下图: 整体步骤就是,首先用java爬取我个人博客的所有链接,然后把这些链接复制到txt文档中,如下图 ...

  5. CSDN博客数据导出

    CSDN2HEXO 源码地址 CSDN2HEXO CSDN2HEXO 是一款基于CSDN开放平台 的 csdn blog 内容下载器, 可以下载博客中的文章内容和图片,文章保存为 markdown 格 ...

  6. 如何将csdn博客转移至halo博客之中

    如何将csdn博客转移至halo博客之中 前言 ​ 这几天装了一个halo博客,但是网站上没有搜到转移csdn博客到halo上面的方法,这其中有几个步骤 ​ 将csdn博客导出文件 ​ 调用halo后 ...

  7. 如何将CSDN博客下载为PDF文件

    嫌前面这段啰嗦可以直接拖到最后看下载方法 听网课的时候看到CSDN上的笔记,觉得记得很好,很详细,想把它保存下来,于是去搜了一下如何将CSDN博客文章导出为PDF,找到了这篇文章:如何将CSDN文章内 ...

  8. 从CSDN博客下载的图片如何无损去水印

    如果你想下载别人CSDN博客文章中很好看的图片,但却有水印 想要下载去水印的图片,可以先鼠标右击该图片,选择复制图片地址 https://img-blog.csdnimg.cn/20200916140 ...

  9. CSDN博客获取积分规则!不是下载积分!如何快速增长积分!

    博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准. 博客等级也将由博客积分唯一决定.积分规则具体如下: 1.每发布一篇原创或者翻译文章:可获得10分: 2.每发布一篇转载文章:可获 ...

  10. 如何在CSDN博客栏目中添加“给我写信”

    在"自定义栏目"中添加"连接"(将自己的微博,QQ空间和CSDN博客关联起来)很多人都做过.但是添加"给我写信"这个功能,用的好像不太多.此 ...

最新文章

  1. sql server cvs 导入
  2. Qt窗口部件——对话框QDialog
  3. 自守数--注意细节啊!!!
  4. matlab 做中值滤波时K = filter2(fspecial('average',3),J)/255,为什么要除以255
  5. Microsemi Libero使用技巧5——使用FlashPro生成stp程序文件
  6. 在线编辑Word——插入图表
  7. 专利审查意见通知书中对比文件对应字母X、Y、A、R、P、E代表的含义
  8. 数据采集卡的模拟输入信号到底应该怎么接线
  9. linux超时设置函数,I/O操作上设置超时之alarm闹钟法
  10. 12、Urban Radiance Fields
  11. 安卓手机上最好的3个txt阅读器
  12. 提高效率5款多功能实用软件推荐
  13. 《爱してる 》歌词与音译(大爱哇)
  14. 用树莓派组装了一台电脑
  15. 关于GPS经纬度如何转百度经纬度
  16. 小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描
  17. 在Unity中为即时战略游戏实现战争迷雾(上)
  18. 天津专家成功发明脉象仪、舌象仪等中医辅助诊断设备,准确率超过95%
  19. (c语言数据结构)用顺序队列的方式实现输入12345,输出12345操作——期末数据结构程序设计
  20. ETH机器人动力学讲义:基于零空间方法的全身运动控制(WBC)-1

热门文章

  1. 《Kafka权威指南》读书笔记4 Kafka消费者
  2. Java经典算法题(一,kafka权威指南百度网盘
  3. oracle 百分位数,Oracle分析函数PERCENTILE_CONT,percentile函数
  4. html css调用自定义字体,html css使用特殊自定义字体避免侵权
  5. 【滤波跟踪】捷联惯导纯惯导解算matlab实现
  6. WiFi 四次握手Omnipeek抓包
  7. 无线视频监控开启无线网络第二春
  8. 人工智能安全学习笔记
  9. 正交表的查询地址汇总
  10. Java程序的开发步骤