双拥网站建设申请,成都私人放款联系方式电话,长沙房产,网片机文章目录 目录 前言 操作步骤 1.引入 2.读取出文件内容 3.筛选出URL 4.下载表情包 总结 前言 这里记录一次用代码下载网络文件的过程#xff0c;以获取抖音表情包为例。
一、操作步骤
1.引入
首先抖音有网页版#xff0c;用浏览器就可以观看#xff0c;用户评论发布表情在… 文章目录 目录 前言 操作步骤 1.引入 2.读取出文件内容 3.筛选出URL 4.下载表情包 总结 前言 这里记录一次用代码下载网络文件的过程以获取抖音表情包为例。
一、操作步骤
1.引入
首先抖音有网页版用浏览器就可以观看用户评论发布表情在评论面板自然也是一个url链接
我们只需F12打开审查表情包面板的代码将带有多个表情包的html复制并保存到我们电脑文件中再用正则筛选出各个url将url用代码去下载该表情包文件并保存到本地文件即可。 2.读取出文件内容
代码如下
/*** 读取本地文件内容转为String字符串* * return* throws Exception*/public static String fileRead() throws Exception {File file new File(D:\\emo\\emo.html);// 定义一个file对象用来初始化FileReaderFileReader reader new FileReader(file);// 定义一个fileReader对象用来初始化BufferedReaderBufferedReader bReader new BufferedReader(reader);// new一个BufferedReader对象将文件内容读取到缓存StringBuilder sb new StringBuilder();// 定义一个字符串缓存将字符串存放缓存中String s ;while ((s bReader.readLine()) ! null) {// 逐行读取文件内容不读取换行符和末尾的空格sb.append(s \n);// 将读取的字符串添加换行符后累加存放在缓存中System.out.println(66666);}bReader.close();String str sb.toString();
// System.out.println(str );return str;}
文件内容 3.筛选出URL
代码如下
/*** 正则匹配字符串中多个url* * return* throws Exception*/public static ArrayListString matchUrl() throws Exception {//多个URL的集合ArrayListString list new ArrayListString();//示例字符串String str div class\foy8gwIu\div class\KegQvOm6 bOlXi_Q3\div class\a2nFYRcv\ img src\https://p3-pc-siq4%3Damp;from876277922\img src\https://p3-pc-s56as1d65samp;from666666\ /div;str fileRead();//读取上一步内容Pattern pattern Pattern.compile(img [^]*src[\]([^\])[^]*);Matcher matcher pattern.matcher(str);while (matcher.find()) {String ss matcher.group();
// System.out.println(ss.substring(10, ss.length()-2));list.add(ss.substring(10, ss.length() - 2));}return list;}
4.下载表情包 代码如下
/*** 下载网络文件到本地磁盘* * param urlString 文件地址* param saveDir 本地磁盘路径* return*/public static String download(String urlString, String saveDir) {InputStream is null;FileOutputStream os null;try {// 构造URLURL url new URL(urlString);// 打开连接URLConnection con url.openConnection();// 输入流is con.getInputStream();// 1K的数据缓冲byte[] bs new byte[1024];// 读取到的数据长度int len;// 输出的文件流
// String filename System.getProperty(os.name).toLowerCase().contains(win) ?
// System.getProperty(user.home) \\Desktop\\temp.jpg : /home/project/temp.jpg;if (!new File(saveDir).exists()) {new File(saveDir).mkdirs();}String filename saveDir String.valueOf(System.currentTimeMillis()) .png;// 使用时间戳命名File file new File(filename);os new FileOutputStream(file, true);// 开始读取while ((len is.read(bs)) ! -1) {os.write(bs, 0, len);}return filename;} catch (Exception e) {e.printStackTrace();} finally {// 关闭链接try {if (null ! os) {os.close();}} catch (IOException e) {e.printStackTrace();}try {if (null ! is) {is.close();}} catch (IOException e) {e.printStackTrace();}}return null;} 5.执行代码
public static void main(String[] args) throws Exception {
// String url https://p3-pc-sign.douyinpic.com/obj/tos-cn-i-tsj2vxp0zn/852eb9046306409282f9ebf4e2414dff?x-expires2006748000amp;x-signatureYLdPxtVWwKfLJcIvExFzt84Clq4%3Damp;from876277922;String dir D:\\emotion\\;
// System.out.println(download(url,dir));ArrayListString list matchUrl();for (IteratorString iterator list.iterator(); iterator.hasNext();) {String url (String) iterator.next();download(url, dir);}// fileRead();}
总结
今天突然想到之前想做一个自定义表情包面板可以用表情来评论。后面再写一个自定义的表情面板插件。