谁有卖115资源的微信

【十 薇:PPS33A】【诚信经营】【持续更新】

说明:通过公众号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;

@Controller

public 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返回

原文地址:https://www.cnblogs.com/jenixbsk/p/12160755.html

时间: 2024-11-06 09:35:54

谁有卖115资源的微信的相关文章

求个卖115资源的微信

[十 薇:PPS33A][任意挑选][质量有保障]本场 Chat 分享主要介绍 Java 中的 Map 集合中的 HashMap.TreeMap.将从源码进行分析,避免一些人只听其说,不知其理,从而让读者深层次的理解 HashMap 的底层原理与实现. 本场 Chat 内容将涉及如下: Map 接口及常用方法: Map 接口及其子接口: HashMap 在 JDK7 中实现原理: LinkedHashMap 的底层实现原理: HashMap 在 JDK8 中相较于 JDK7 在底层实现方面的不同

有没有卖115资源的微信

一.代码的命名规范 要想做一名优秀的程序员,我们就要从基础做起–代码的命名规范.只有代码命名规范了,才能够让别人看得清楚看得懂我们的代码,我们自己手中的代码才能实现它的价值.规范代码的目的也是为了统一公司软件开发过程中关于代码编写时的编写规范和具体开发工作时的编程规范,保证代码的一致性,便于交流和维护. 二.人不成熟的五大特征 1.人不成熟的第一个特征——立即要回报 很多人不懂得只有春天播种,秋天才会收获的道理.做事的时候,刚刚付出一点点,马上就要得到回报.很要有长远的眼光,要看得更远一些,眼光

哪还有卖115资源的—持续更新

[十 薇:T77554][诚信经营][持续更新][品种繁多][任意挑选][质量有保障] HashMap 面试题,看这一篇就够了! ? structures Chat 作者 来自某BAT互联网大厂的一枚程序员,注重总结.分享和自我成长. 长期不间断的投资自己,未来可期. ? 在程序员这一职业中,集合是我们使用频率相当高的一个工具,而其中的 HashMap,则更是我们用以处理业务逻辑的好帮手,同时 HashMap 的底层实现和原理,也成了面试题中的常客. 还在担心面试中被问到 HashMap.Has

有没有卖115资源

[找]PPS33A[徽] 习惯一:主动积极 —个人愿景的原则:主动积极就是为自己过去.现在及未来的行为负责,并依据原则及价值观,而不是情绪或外在环境的影响决定取舍. 习惯二:以终为始 —自我领导的原则:意识决定存在,所有事物都经过两次的创造:先是在脑海里形成意识,其次才是实质的创造. 习惯三:要事第一 —自我管理的原则:要事第一即实质的创造,是梦想(你的目标.愿景.价值观及要事处理顺序)的组织与实践.次要的事不必摆在第一,要事也不能放在第二.无论迫切性如何,个人与组织均针对要事而来,忙要忙得有意

怎么找卖115资源的人

[十 薇:T77554]根据中文翻译相当于一辆有待建造的汽车,而对象的属性相当于汽车的部件,建造产品的过程就相当于组合部件的过程.由于组合部件的过程很复杂,因此,这些部件的组合过程往往被“外部化”到一个称作建造者的对象里,建造者返还给客户端的是一个已经建造完毕的完整产品对象,而用户无须关心该对象所包含的属性以及它们的组装方式,这就是建造者模式的模式动机. 意图 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 原文地址:ht

115资源哪里有卖得人

115资源哪里有卖<十 薇  :T 7 7 5 7 4 >一般而言,软件架构是一个软件系统从整体到部分的最高层次的划分.通常,一个系统是由元件组成的,而这些元件如何形成.相互之间如何发生作用,则是关于这个系统本身结构的重要信息,主要包括: 在一定的设计原则基础上,从不同角度对组成系统的各个部分进行搭配和安排,由形成系统的多个结构组成了架构.它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系.组件的外部可见属性,指其他组件对该组件所做的假设.软件架构,还包括符合系统完整性.经济约束条

卖weed的机长微信

卖weed的机长微信[薇|信+:K777KA]卖weed的机长微信[薇+信:K777KA ██唯一进口纯天然██各地招DL█]回答,风司冥只是更紧地抓住了青梵的左手轻轻地叹一口气,青梵伸出右手覆上他紧抓住自己的手.手指缓缓地在少年手上抚过,感觉到丝毫的放松立刻将手指嵌入两人皮肤的空隙之中,跟着一点点用力,将少年的手与自己手腕分离."太傅,不要--",回答,风司冥只是更紧地抓住了青梵的左手. ., . 原文地址:https://www.cnblogs.com/weedfeiyezi/p/

哪还能找到115资源卖的

[前言] 使用DPDK开发的朋友应该都了解使用dpdk的fwd线程的工作模式是polling模式,即100%轮询的方式去3加速网络IO,这样我们在操作系统层面上来观察目标processer会发现usage一直为100%,但是这真的是系统的真实负载么?很显然并不是,本文给出一种方法来计算dpdk的fwd线程的真实负载的方法. [场景] 使用DPDK头痛的一点就是DPDK的fwd线程工作在polling模式,会直接消耗一整个processer的计算资源,有的时候为了性能考虑,往往还会给当前proce

求个微信卖那种资源的微信号

十 薇 _ A V 5 6 7 6 6 . 之 前 在 他 这 里 拿 的 , 很 靠 谱 , 很 好 看 . 无 需 打 开 原文地址:https://www.cnblogs.com/askk/p/12094449.html