91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何通過URL獲取公眾號文章生成HTML

發布時間:2021-09-26 17:06:04 來源:億速云 閱讀:298 作者:小新 欄目:編程語言

這篇文章主要介紹Java如何通過URL獲取公眾號文章生成HTML,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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

這里就需要在后臺對HTML進行DOM的解析,需要用的Jsoup

<dependency>  <groupId>com.aliyun.oss</groupId>  <artifactId>aliyun-sdk-oss</artifactId>  <version>2.2.3</version>  </dependency> <dependency>   <groupId>org.jsoup</groupId>   <artifactId>jsoup</artifactId>   <version>1.9.2</version> </dependency>

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;@Controllerpublic class TestUrl {  @RequestMapping("tohtml") public String tohtml() { return "html/index.html"; } @RequestMapping("getHtml") @ResponseBody public Map<String,String> getHtml(String url){ //獲取url文章生成文本 String html = UrlUtil.getAccess(url); String reg = "<html>(.*?)</html>"; 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<String,String> map=new HashMap<String, String>(); 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 {  //以下幾個參數值必填,參考文章最后文檔 static String endpoint = "http://oss-cn-qingdao.aliyuncs.com"; static String accessKeyId = "oss獲取"; static String accessKeySecert = "oss獲取"; static String bucketName = "yueang2";  /** * 上傳單個文件到OSS * @param file 要上傳的文件File對象 * @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;   }}

以上是“Java如何通過URL獲取公眾號文章生成HTML”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪湖市| 潼南县| 东宁县| 阳春市| 孟州市| 松滋市| 洞头县| 望谟县| 芜湖县| 剑河县| 新晃| 安达市| 大余县| 蒲城县| 沙湾县| 余姚市| 铁岭县| 启东市| 溧水县| 南安市| 六安市| 嵊泗县| 五原县| 宁武县| 平谷区| 芦山县| 桂平市| 牡丹江市| 娄烦县| 图木舒克市| 江永县| 凤阳县| 合阳县| 凉城县| 邻水| 凌源市| 宁南县| 绥棱县| 叙永县| 黔西| 多伦县|