如何方便的下载csdn博客正文
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博客正文相关推荐
- Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片
Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片 其实没太大用,就是方便一些,因为现在各个平台之间的图片都不能共享,比如说在 CSDN 不能用简书的图片, ...
- 8.一个项目实战(下载CSDN博客文章)
专栏地址 ʅ(‾◡◝)ʃ 前言 要写一个下载器,首先要实现一个接口函数,而这个函数可以对请求的数据进行处理也就是爬虫,其次才是写图形化界面 接口的实现 其实CSDN的浏览器页面的接口很复杂,是直接通过 ...
- 备份CSDN博客正文到本地存档
大哥有了新想法,然而没有技术,令人欣慰的是大哥想到了我,于是我便答应免费帮个忙,这是一个基于云的项目,具体细节也就不透露了,然而在实现的过程中,其中一个模块我觉得可以自用,于是我就想把这个模块抽出来, ...
- 【C++鼠标键盘操作】自动下载CSDN博客文章到PDF
思路 这个方法的通用性比较差,用到了一个火狐的插件,这个插件可以将单篇csdn博客保存成pdf,如下图: 整体步骤就是,首先用java爬取我个人博客的所有链接,然后把这些链接复制到txt文档中,如下图 ...
- CSDN博客数据导出
CSDN2HEXO 源码地址 CSDN2HEXO CSDN2HEXO 是一款基于CSDN开放平台 的 csdn blog 内容下载器, 可以下载博客中的文章内容和图片,文章保存为 markdown 格 ...
- 如何将csdn博客转移至halo博客之中
如何将csdn博客转移至halo博客之中 前言 这几天装了一个halo博客,但是网站上没有搜到转移csdn博客到halo上面的方法,这其中有几个步骤 将csdn博客导出文件 调用halo后 ...
- 如何将CSDN博客下载为PDF文件
嫌前面这段啰嗦可以直接拖到最后看下载方法 听网课的时候看到CSDN上的笔记,觉得记得很好,很详细,想把它保存下来,于是去搜了一下如何将CSDN博客文章导出为PDF,找到了这篇文章:如何将CSDN文章内 ...
- 从CSDN博客下载的图片如何无损去水印
如果你想下载别人CSDN博客文章中很好看的图片,但却有水印 想要下载去水印的图片,可以先鼠标右击该图片,选择复制图片地址 https://img-blog.csdnimg.cn/20200916140 ...
- CSDN博客获取积分规则!不是下载积分!如何快速增长积分!
博客积分是CSDN对用户努力的认可和奖励,也是衡量博客水平的重要标准. 博客等级也将由博客积分唯一决定.积分规则具体如下: 1.每发布一篇原创或者翻译文章:可获得10分: 2.每发布一篇转载文章:可获 ...
- 如何在CSDN博客栏目中添加“给我写信”
在"自定义栏目"中添加"连接"(将自己的微博,QQ空间和CSDN博客关联起来)很多人都做过.但是添加"给我写信"这个功能,用的好像不太多.此 ...
最新文章
- sql server cvs 导入
- Qt窗口部件——对话框QDialog
- 自守数--注意细节啊!!!
- matlab 做中值滤波时K = filter2(fspecial('average',3),J)/255,为什么要除以255
- Microsemi Libero使用技巧5——使用FlashPro生成stp程序文件
- 在线编辑Word——插入图表
- 专利审查意见通知书中对比文件对应字母X、Y、A、R、P、E代表的含义
- 数据采集卡的模拟输入信号到底应该怎么接线
- linux超时设置函数,I/O操作上设置超时之alarm闹钟法
- 12、Urban Radiance Fields
- 安卓手机上最好的3个txt阅读器
- 提高效率5款多功能实用软件推荐
- 《爱してる 》歌词与音译(大爱哇)
- 用树莓派组装了一台电脑
- 关于GPS经纬度如何转百度经纬度
- 小白日记10:kali渗透测试之端口扫描-UDP、TCP、僵尸扫描、隐蔽扫描
- 在Unity中为即时战略游戏实现战争迷雾(上)
- 天津专家成功发明脉象仪、舌象仪等中医辅助诊断设备,准确率超过95%
- (c语言数据结构)用顺序队列的方式实现输入12345,输出12345操作——期末数据结构程序设计
- ETH机器人动力学讲义:基于零空间方法的全身运动控制(WBC)-1