91精产品自偷自偷综合官网版下载-91精产品自偷自偷综合下-91精品-91精品91久久久-91精品成人-91精品成人www

網(wǎng)站建設(shè)資訊

NEWS

網(wǎng)站建設(shè)資訊

Java通過(guò)URL獲取公眾號(hào)文章生成HTML的方法

說(shuō)明:通過(guò)公眾號(hào)URL獲取的內(nèi)容,文字可以正常顯示,但是圖片存在跨域訪問(wèn)的問(wèn)題,微信不允許跨域訪問(wèn)公眾號(hào)圖片,所以需要將公眾號(hào)圖片從存入本地后,再上傳至OSS,然后把HTML中的圖片全部替換為自己的OSS地址就可以了

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供川匯網(wǎng)站建設(shè)、川匯做網(wǎng)站、川匯網(wǎng)站設(shè)計(jì)、川匯網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、川匯企業(yè)網(wǎng)站模板建站服務(wù),10年川匯做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

這里就需要在后臺(tái)對(duì)HTML進(jìn)行DOM的解析,需要用的Jsoup


  com.aliyun.oss
  aliyun-sdk-oss
  2.2.3
 
 
 
   org.jsoup
   jsoup
   1.9.2
 

controller

package com.iueang.controller;
 
import java.io.File;
import java.util.HashMap;
import java.util.Map;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import com.iueang.util.DownLoadImg;
import com.iueang.util.GetBody;
import com.iueang.util.OssUtil2;
import com.iueang.util.UrlUtil;
@Controller
public class TestUrl {
 
 @RequestMapping("tohtml")
 public String tohtml() {
 return "html/index.html";
 }
 @RequestMapping("getHtml")
 @ResponseBody
 public Map getHtml(String url){
 //獲取url文章生成文本
 String html = UrlUtil.getAccess(url);
 String reg = "(.*?)";
 String head=GetBody.getSubUtilSimple(html, reg);
 String HTTPHOST="http://yueang2.oss-cn-qingdao.aliyuncs.com/testimg/";
 String newsBody=head;
 Document doc = Jsoup.parse(newsBody);
    Elements pngs = doc.select("img[data-src]");
    System.out.println(pngs);
    for (Element element : pngs) {
    //獲取圖片地址
     String imgUrl = element.attr("data-src");
     //下載圖片到本地
     String filename=DownLoadImg.downloadPicture(imgUrl);
  File file =new File("D:\\m2\\"+filename);
  //上傳至oss
  Boolean flag = OssUtil2.uploadFileToOss(file, "testimg/"+filename);
  if(flag) {
  file.delete();
  }
     String newsrc =HTTPHOST + filename;
     element.attr("src", newsrc);
    }
    newsBody = doc.toString();
    System.out.println(newsBody);
 Map map=new HashMap();
 map.put("resultHtml", newsBody);
 return map;
 
 }
}

util工具類

GetBody類

package com.iueang.util;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class GetBody {
 
 public static String getSubUtilSimple(String html, String reg) {
  Pattern pattern = Pattern.compile(reg);// 匹配的模式
     Matcher m = pattern.matcher(html);
     while(m.find()){
       return m.group(1);
     }
     return "";
 }
 
}

OssUtil類

package com.iueang.util;
 
import java.io.File;
import java.util.HashMap;
import java.util.Map;
 
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.ObjectMetadata;
 
public class OssUtil2 { 
 //以下幾個(gè)參數(shù)值必填,參考文章最后文檔
 static String endpoint = "http://oss-cn-qingdao.aliyuncs.com";
 static String accessKeyId = "oss獲取";
 static String accessKeySecert = "oss獲取";
 static String bucketName = "yueang2";
 
 /**
 * 上傳單個(gè)文件到OSS
 * @param file 要上傳的文件File對(duì)象
 * @param objName 上傳后的文件名,包含文件夾,比如 game/game/test.txt
 * @return
 */
 public static boolean uploadFileToOss(File file, String objName) {
   try {
     OSSClient ossClient = null;
     try {
       ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecert);
     }catch (Exception e){
       e.printStackTrace();
     }
     ObjectMetadata meta = new ObjectMetadata();
     ossClient.putObject(bucketName, objName, file, meta);
     ossClient.shutdown();
   } catch (Exception e) {
     e.printStackTrace();
     return false;
   }
   return true;
 }
}

DownLoadImg類

package com.iueang.util;
 
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.UUID;
 
import sun.misc.BASE64Encoder;
public class DownLoadImg {
 public static String downloadPicture(String urlList) {
  String filename="iueang"+UUID.randomUUID().toString()+".png";
  String path="D:/m2/"+filename;
     URL url = null;
     try {
       url = new URL(urlList);
       DataInputStream dataInputStream = new DataInputStream(url.openStream());
       FileOutputStream fileOutputStream = new FileOutputStream(new File(path));
       ByteArrayOutputStream output = new ByteArrayOutputStream();
 
       byte[] buffer = new byte[1024];
       int length;
 
       while ((length = dataInputStream.read(buffer)) > 0) {
         output.write(buffer, 0, length);
       }
       BASE64Encoder encoder = new BASE64Encoder();
       String encode = encoder.encode(buffer);
       fileOutputStream.write(output.toByteArray());
       dataInputStream.close();
       fileOutputStream.close();
     } catch (MalformedURLException e) {
       e.printStackTrace();
     } catch (IOException e) {
       e.printStackTrace();
     }
     System.out.println("Download返回的filname="+filename);
 return filename;
   }
}
 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


分享標(biāo)題:Java通過(guò)URL獲取公眾號(hào)文章生成HTML的方法
標(biāo)題鏈接:http://www.yuzhuanjia.cn/article/gcdedi.html
主站蜘蛛池模板: 大片网站你懂得 | 99久久国产综合精品女同图片 | 91欧美精品成人综合在线观看 | 成人涩涩视频免费观看 | 一区二区三区影院动漫 | GOGO日本无码肉体艺术 | 白丝爆乳jk自慰流水网站 | 国产aa免费视频 | AV无码A片高潮AV | 日韩av在线天堂 | 爱操综合网 | 囯产精品一区二区免费在线观看 | 国产爆乳无玛av在线播放 | 一区二区国产精品免费视频 | 成年人在线观看免费 | 91桃色app| 国产不卡一区二区久久精品 | 午夜无码国产a三级视频 | 91福利在线观 | 国产2025精品三区在线观看 | 午夜片少妇无码区在线观看 | 午夜婷婷精品午夜无 | 午夜电影免费在线观看 | 99久久精品日本一区二区免费 | 高潮毛片无| av中文字幕人妻一区 | 91日本在线视频 | 午夜伦理伦理片在线观 | 国产aⅴ无码精品一区二区 国产aⅴ无码精品一区二区三区 | 91精品国产肉丝高跟在线观 | 午夜福利视频欧美日韩一区 | 国产av台湾精品 | av中文字幕一区人妻 | 国产av级不卡毛片在线观看 | 91极品尤物91禁国产在线播放 | 成人午夜大片 | 白嫩少妇激情无码久久 | 97高清国语自产拍日本精品资源小说无码 | 91免费福利精品国产 | 91国偷自产一区二区三区老熟女 | 成年人19私人永久 |