精华内容
下载资源
问答
  • 主要介绍了java读取html文件,并获取body中所有的标签及内容的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇java过滤html标签获取纯文本信息的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇Java 获取Html文本中的img标签下src中的内容方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了Java基于正则表达式获取指定HTML标签指定属性值的方法,涉及java基于正则的HTML元素匹配相关操作技巧,需要的朋友可以参考下
  • java操作修改html标签

    2019-08-13 01:22:56
    NULL 博文链接:https://guoyulong005.iteye.com/blog/2305737
  • Java如何快速获取Html标签中的内容

    千次阅读 2021-01-21 13:11:00
    转义文本中的HTML字符为安全的字符:<div><script>alert(1);</script></div> 代码如下: 转义和反转义工具类:EscapeUtil public class ...

    输入内容:<div><script>alert(1);</script></div>
    输出内容:alert(1);
    转义文本中的HTML字符为安全的字符:&#60;div&#62;&#60;script&#62;alert(1);&#60;/script&#62;&#60;/div&#62;
    代码如下:
    转义和反转义工具类:EscapeUtil

    public class EscapeUtil
    {
        public static final String RE_HTML_MARK = "(<[^<]*?>)|(<[\\s]*?/[^<]*?>)|(<[^<]*?/[\\s]*?>)";
        private static final char[][] TEXT = new char[64][];
        static
        {
            for (int i = 0; i < 64; i++)
            {
                TEXT[i] = new char[] { (char) i };
            }
            // special HTML characters
            TEXT['\''] = "&#039;".toCharArray(); // 单引号
            TEXT['"'] = "&#34;".toCharArray(); // 单引号
            TEXT['&'] = "&#38;".toCharArray(); // &符
            TEXT['<'] = "&#60;".toCharArray(); // 小于号
            TEXT['>'] = "&#62;".toCharArray(); // 大于号
        }
        /**
         * 转义文本中的HTML字符为安全的字符
         * 
         * @param text 被转义的文本
         * @return 转义后的文本
         */
        public static String escape(String text)
        {
            return encode(text);
        }
        /**
         * 还原被转义的HTML特殊字符
         * 
         * @param content 包含转义符的HTML内容
         * @return 转换后的字符串
         */
        public static String unescape(String content)
        {
            return decode(content);
        }
        /**
         * 清除所有HTML标签,但是不删除标签内的内容
         * 
         * @param content 文本
         * @return 清除标签后的文本
         */
        public static String clean(String content)
        {
            return new HTMLFilter().filter(content);
        }
        /**
         * Escape编码
         * 
         * @param text 被编码的文本
         * @return 编码后的字符
         */
        private static String encode(String text)
        {
            int len;
            if ((text == null) || ((len = text.length()) == 0))
            {
                return StringUtils.EMPTY;
            }
            StringBuilder buffer = new StringBuilder(len + (len >> 2));
            char c;
            for (int i = 0; i < len; i++)
            {
                c = text.charAt(i);
                if (c < 64)
                {
                    buffer.append(TEXT[c]);
                }
                else
                {
                    buffer.append(c);
                }
            }
            return buffer.toString();
        }
        /**
         * Escape解码
         * 
         * @param content 被转义的内容
         * @return 解码后的字符串
         */
        public static String decode(String content)
        {
            if (StringUtils.isEmpty(content))
            {
                return content;
            }
    
            StringBuilder tmp = new StringBuilder(content.length());
            int lastPos = 0, pos = 0;
            char ch;
            while (lastPos < content.length())
            {
                pos = content.indexOf("%", lastPos);
                if (pos == lastPos)
                {
                    if (content.charAt(pos + 1) == 'u')
                    {
                        ch = (char) Integer.parseInt(content.substring(pos + 2, pos + 6), 16);
                        tmp.append(ch);
                        lastPos = pos + 6;
                    }
                    else
                    {
                        ch = (char) Integer.parseInt(content.substring(pos + 1, pos + 3), 16);
                        tmp.append(ch);
                        lastPos = pos + 3;
                    }
                }
                else
                {
                    if (pos == -1)
                    {
                        tmp.append(content.substring(lastPos));
                        lastPos = content.length();
                    }
                    else
                    {
                        tmp.append(content.substring(lastPos, pos));
                        lastPos = pos;
                    }
                }
            }
            return tmp.toString();
        }
    
        public static void main(String[] args)
        {
            String html = "<div><script>alert(1);</script></div>";
            System.out.println(EscapeUtil.clean(html));
            String sss  = EscapeUtil.escape(html);
            System.out.println(sss);
    //        System.out.println(EscapeUtil.unescape(sss));
        }
    }
    

    字符串工具类:StringUtils

    public class StringUtils extends org.apache.commons.lang3.StringUtils
    {
        /** 空字符串 */
        private static final String NULLSTR = "";
    
        /** 下划线 */
        private static final char SEPARATOR = '_';
    
        /**
         * 获取参数不为空值
         * 
         * @param value defaultValue 要判断的value
         * @return value 返回值
         */
        public static <T> T nvl(T value, T defaultValue)
        {
            return value != null ? value : defaultValue;
        }
    
        /**
         * * 判断一个Collection是否为空, 包含List,Set,Queue
         * 
         * @param coll 要判断的Collection
         * @return true:为空 false:非空
         */
        public static boolean isEmpty(Collection<?> coll)
        {
            return isNull(coll) || coll.isEmpty();
        }
    
        /**
         * * 判断一个Collection是否非空,包含List,Set,Queue
         * 
         * @param coll 要判断的Collection
         * @return true:非空 false:空
         */
        public static boolean isNotEmpty(Collection<?> coll)
        {
            return !isEmpty(coll);
        }
    
        /**
         * * 判断一个对象数组是否为空
         * 
         * @param objects 要判断的对象数组
         ** @return true:为空 false:非空
         */
        public static boolean isEmpty(Object[] objects)
        {
            return isNull(objects) || (objects.length == 0);
        }
    
        /**
         * * 判断一个对象数组是否非空
         * 
         * @param objects 要判断的对象数组
         * @return true:非空 false:空
         */
        public static boolean isNotEmpty(Object[] objects)
        {
            return !isEmpty(objects);
        }
    
        /**
         * * 判断一个Map是否为空
         * 
         * @param map 要判断的Map
         * @return true:为空 false:非空
         */
        public static boolean isEmpty(Map<?, ?> map)
        {
            return isNull(map) || map.isEmpty();
        }
    
        /**
         * * 判断一个Map是否为空
         * 
         * @param map 要判断的Map
         * @return true:非空 false:空
         */
        public static boolean isNotEmpty(Map<?, ?> map)
        {
            return !isEmpty(map);
        }
    
        /**
         * * 判断一个字符串是否为空串
         * 
         * @param str String
         * @return true:为空 false:非空
         */
        public static boolean isEmpty(String str)
        {
            return isNull(str) || NULLSTR.equals(str.trim());
        }
    
        /**
         * * 判断一个字符串是否为非空串
         * 
         * @param str String
         * @return true:非空串 false:空串
         */
        public static boolean isNotEmpty(String str)
        {
            return !isEmpty(str);
        }
    
        /**
         * * 判断一个对象是否为空
         * 
         * @param object Object
         * @return true:为空 false:非空
         */
        public static boolean isNull(Object object)
        {
            return object == null;
        }
    
        /**
         * * 判断一个对象是否非空
         * 
         * @param object Object
         * @return true:非空 false:空
         */
        public static boolean isNotNull(Object object)
        {
            return !isNull(object);
        }
    
        /**
         * * 判断一个对象是否是数组类型(Java基本型别的数组)
         * 
         * @param object 对象
         * @return true:是数组 false:不是数组
         */
        public static boolean isArray(Object object)
        {
            return isNotNull(object) && object.getClass().isArray();
        }
    
        /**
         * 去空格
         */
        public static String trim(String str)
        {
            return (str == null ? "" : str.trim());
        }
    
        /**
         * 截取字符串
         * 
         * @param str 字符串
         * @param start 开始
         * @return 结果
         */
        public static String substring(final String str, int start)
        {
            if (str == null)
            {
                return NULLSTR;
            }
    
            if (start < 0)
            {
                start = str.length() + start;
            }
    
            if (start < 0)
            {
                start = 0;
            }
            if (start > str.length())
            {
                return NULLSTR;
            }
    
            return str.substring(start);
        }
    
        /**
         * 截取字符串
         * 
         * @param str 字符串
         * @param start 开始
         * @param end 结束
         * @return 结果
         */
        public static String substring(final String str, int start, int end)
        {
            if (str == null)
            {
                return NULLSTR;
            }
    
            if (end < 0)
            {
                end = str.length() + end;
            }
            if (start < 0)
            {
                start = str.length() + start;
            }
    
            if (end > str.length())
            {
                end = str.length();
            }
    
            if (start > end)
            {
                return NULLSTR;
            }
    
            if (start < 0)
            {
                start = 0;
            }
            if (end < 0)
            {
                end = 0;
            }
    
            return str.substring(start, end);
        }
    
        /**
         * 格式化文本, {} 表示占位符<br>
         * 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
         * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
         * 例:<br>
         * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
         * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
         * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
         * 
         * @param template 文本模板,被替换的部分用 {} 表示
         * @param params 参数值
         * @return 格式化后的文本
         */
        public static String format(String template, Object... params)
        {
            if (isEmpty(params) || isEmpty(template))
            {
                return template;
            }
            return StrFormatter.format(template, params);
        }
    
        /**
         * 字符串转set
         * 
         * @param str 字符串
         * @param sep 分隔符
         * @return set集合
         */
        public static final Set<String> str2Set(String str, String sep)
        {
            return new HashSet<String>(str2List(str, sep, true, false));
        }
    
        /**
         * 字符串转list
         * 
         * @param str 字符串
         * @param sep 分隔符
         * @param filterBlank 过滤纯空白
         * @param trim 去掉首尾空白
         * @return list集合
         */
        public static final List<String> str2List(String str, String sep, boolean filterBlank, boolean trim)
        {
            List<String> list = new ArrayList<String>();
            if (StringUtils.isEmpty(str))
            {
                return list;
            }
    
            // 过滤空白字符串
            if (filterBlank && StringUtils.isBlank(str))
            {
                return list;
            }
            String[] split = str.split(sep);
            for (String string : split)
            {
                if (filterBlank && StringUtils.isBlank(string))
                {
                    continue;
                }
                if (trim)
                {
                    string = string.trim();
                }
                list.add(string);
            }
    
            return list;
        }
    
        /**
         * 下划线转驼峰命名
         */
        public static String toUnderScoreCase(String str)
        {
            if (str == null)
            {
                return null;
            }
            StringBuilder sb = new StringBuilder();
            // 前置字符是否大写
            boolean preCharIsUpperCase = true;
            // 当前字符是否大写
            boolean curreCharIsUpperCase = true;
            // 下一字符是否大写
            boolean nexteCharIsUpperCase = true;
            for (int i = 0; i < str.length(); i++)
            {
                char c = str.charAt(i);
                if (i > 0)
                {
                    preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));
                }
                else
                {
                    preCharIsUpperCase = false;
                }
    
                curreCharIsUpperCase = Character.isUpperCase(c);
    
                if (i < (str.length() - 1))
                {
                    nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
                }
    
                if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase)
                {
                    sb.append(SEPARATOR);
                }
                else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase)
                {
                    sb.append(SEPARATOR);
                }
                sb.append(Character.toLowerCase(c));
            }
    
            return sb.toString();
        }
    
        /**
         * 是否包含字符串
         * 
         * @param str 验证字符串
         * @param strs 字符串组
         * @return 包含返回true
         */
        public static boolean inStringIgnoreCase(String str, String... strs)
        {
            if (str != null && strs != null)
            {
                for (String s : strs)
                {
                    if (str.equalsIgnoreCase(trim(s)))
                    {
                        return true;
                    }
                }
            }
            return false;
        }
    
        /**
         * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld
         * 
         * @param name 转换前的下划线大写方式命名的字符串
         * @return 转换后的驼峰式命名的字符串
         */
        public static String convertToCamelCase(String name)
        {
            StringBuilder result = new StringBuilder();
            // 快速检查
            if (name == null || name.isEmpty())
            {
                // 没必要转换
                return "";
            }
            else if (!name.contains("_"))
            {
                // 不含下划线,仅将首字母大写
                return name.substring(0, 1).toUpperCase() + name.substring(1);
            }
            // 用下划线将原始字符串分割
            String[] camels = name.split("_");
            for (String camel : camels)
            {
                // 跳过原始字符串中开头、结尾的下换线或双重下划线
                if (camel.isEmpty())
                {
                    continue;
                }
                // 首字母大写
                result.append(camel.substring(0, 1).toUpperCase());
                result.append(camel.substring(1).toLowerCase());
            }
            return result.toString();
        }
    
        /**
         * 驼峰式命名法 例如:user_name->userName
         */
        public static String toCamelCase(String s)
        {
            if (s == null)
            {
                return null;
            }
            s = s.toLowerCase();
            StringBuilder sb = new StringBuilder(s.length());
            boolean upperCase = false;
            for (int i = 0; i < s.length(); i++)
            {
                char c = s.charAt(i);
    
                if (c == SEPARATOR)
                {
                    upperCase = true;
                }
                else if (upperCase)
                {
                    sb.append(Character.toUpperCase(c));
                    upperCase = false;
                }
                else
                {
                    sb.append(c);
                }
            }
            return sb.toString();
        }
    }
    

    字符串格式化:StrFormatter

    public class StrFormatter
    {
        public static final String EMPTY_JSON = "{}";
        public static final char C_BACKSLASH = '\\';
        public static final char C_DELIM_START = '{';
        public static final char C_DELIM_END = '}';
    
        /**
         * 格式化字符串<br>
         * 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
         * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
         * 例:<br>
         * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
         * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
         * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
         * 
         * @param strPattern 字符串模板
         * @param argArray 参数列表
         * @return 结果
         */
        public static String format(final String strPattern, final Object... argArray)
        {
            if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray))
            {
                return strPattern;
            }
            final int strPatternLength = strPattern.length();
    
            // 初始化定义好的长度以获得更好的性能
            StringBuilder sbuf = new StringBuilder(strPatternLength + 50);
    
            int handledPosition = 0;
            int delimIndex;// 占位符所在位置
            for (int argIndex = 0; argIndex < argArray.length; argIndex++)
            {
                delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition);
                if (delimIndex == -1)
                {
                    if (handledPosition == 0)
                    {
                        return strPattern;
                    }
                    else
                    { // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果
                        sbuf.append(strPattern, handledPosition, strPatternLength);
                        return sbuf.toString();
                    }
                }
                else
                {
                    if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH)
                    {
                        if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH)
                        {
                            // 转义符之前还有一个转义符,占位符依旧有效
                            sbuf.append(strPattern, handledPosition, delimIndex - 1);
                            sbuf.append(Convert.utf8Str(argArray[argIndex]));
                            handledPosition = delimIndex + 2;
                        }
                        else
                        {
                            // 占位符被转义
                            argIndex--;
                            sbuf.append(strPattern, handledPosition, delimIndex - 1);
                            sbuf.append(C_DELIM_START);
                            handledPosition = delimIndex + 1;
                        }
                    }
                    else
                    {
                        // 正常占位符
                        sbuf.append(strPattern, handledPosition, delimIndex);
                        sbuf.append(Convert.utf8Str(argArray[argIndex]));
                        handledPosition = delimIndex + 2;
                    }
                }
            }
            // 加入最后一个占位符后所有的字符
            sbuf.append(strPattern, handledPosition, strPattern.length());
    
            return sbuf.toString();
        }
    }
    
    展开全文
  • 下面小编就为大家带来一篇java正则表达式获取指定HTML标签的指定属性值且替换的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java 读取html过滤标签

    2019-08-13 01:17:36
    NULL 博文链接:https://starbhhc.iteye.com/blog/2301355
  • 主要介绍了java正则匹配HTML中a标签里的中文字符,涉及java中文正则及HTML元素操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了Java HtmlParse提取标签中的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • jsoup 是一款JavaHTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,  可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 2.主要功能 1.从一个URL,文件或字符串中...

    1.简介

        刚到一个新公司,web项目,接收第一个需求有需要解析一个内容为HTML的字符串,截取其中一个标签的内容,想了很多方法,比如正则等,然后一个大佬同事给介绍了jsoup,

        jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,

     可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

    2.主要功能

        1.从一个URL,文件或字符串中解析HTML

        2.使用DOM或CSS选择器来查找、取出数据

        3.可操作HTML元素、属性、文本

        注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。

    3.本次案例

    下文HTML 是 一个字符串

    Document docDesc = Jsoup.parse(str);
    
    //根据标签ID 获取标签内容
    Element p = docDesc.getElementById("ghg");
    String seoDesc = p .text();
    注意,如果字符串内的HTML不存在ID为 ghg的标签,则获取到的值为null

    了解更多 jsoup的用法 https://www.cnblogs.com/zhangyinhua/p/8037599.html

     

    展开全文
  • jsoup获取meta标签、jsoup获取img标签、jsoup获取a标签、jsoup获取h标签、Java解析HTML标签 主要是对一个网页的meta、a、img等对SEO有有益的标签 主要代码:(熟悉Jsoup的看这块就行了,直接复制除实体对象外即可...

    jsoup获取meta标签、jsoup获取img标签、jsoup获取a标签、jsoup获取h标签、Java解析HTML标签

    主要是对一个网页的meta、a、img等对SEO有有益的标签

    主要代码:(熟悉Jsoup的看这块就行了,直接复制除实体对象外即可使用)

    package com.spider.common.jsoup;
    
    import com.spider.common.jsoup.entity.HData;
    import com.spider.common.jsoup.entity.HrefData;
    import com.spider.common.jsoup.entity.ImgData;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 作用:对一个网页的基本解析操作
     * 作者:Tiddler
     * 时间:2018-08-2018/8/3 17:54
     * 类名:BaseParser
     **/
    public class BaseParser {
        private final static Logger log= LogManager.getLogger(BaseParser.class);
        private Document document;
        public BaseParser(Document document) {
            this.document = document;
        }
    
        /**
         * 获取网页中meta标签的keywords值
         * @return
         */
        public String getMetaKeyword(){
            Elements attr = document.select("meta[name=keywords]");
            if(attr!=null){
                Element element = attr.get(0);
                return element.attr("content");
            }
            return null;
        }
    
        /**
         * 获取网页中meta标签的description值
         * @return
         */
        public String getMetaDescription(){
            Elements attr = document.select("meta[name=description]");
            if(attr!=null){
                Element element = attr.get(0);
                return element.attr("content");
            }
            return null;
        }
    
        /**
         * 获取页面中所有的a标签
         * @return
         */
        public List<HrefData> getHrefs(){
            Elements attr = document.getElementsByTag("a");
            List<HrefData> hrefDataList=new ArrayList<HrefData>();
            for (Element element : attr) {
                //实体对象构造方法,代码省略
                HrefData hrefData=new HrefData(element.attr("href"),element.attr("title"),element.text());
                hrefDataList.add(hrefData);
            }
            return hrefDataList;
        }
    
        /**
         * 获取页面中所有img标签
         * @return
         */
        public List<ImgData> getImgs(){
            Elements attr = document.getElementsByTag("img");
            List<ImgData> imgDataList=new ArrayList<ImgData>();
            for (Element element : attr) {
                ImgData imgData=new ImgData(element.attr("src"),element.attr("alt"));//实体对象构造方法,代码省略
                imgDataList.add(imgData);
            }
            return imgDataList;
        }
    
        /**
         * 获取页面中的h标签
         * @return
         */
        public List<HData> getHs(){
            List<HData> hDataList=new ArrayList<HData>();
            Elements attr1 = document.getElementsByTag("h1");
            for (Element element : attr1) {
                HData hData=new HData("h1",element.text());//实体对象构造方法,代码省略
                hDataList.add(hData);
            }
            Elements attr2 = document.getElementsByTag("h2");
            for (Element element : attr2) {
                HData hData=new HData("h2",element.text());
                hDataList.add(hData);
            }
            return hDataList;
        }
    }
    

    使用到的相关类:

    启动测试类

    /**
     * 作用:
     * 作者:Tiddler
     * 时间:2018-08-2018/8/3 17:51
     * 类名:ParserTest
     **/
    public class ParserTest {
        public static void main(String[] args) {
            Document doc = GetDocument.get("https://blog.csdn.net/qq_31384551/article/details/81327255");
            BaseParser baseParser=new BaseParser(doc);
            System.out.println(baseParser.getMetaKeyword());
    
        }
    }

    获取Document的类

    /**
     * 作用:
     * 作者:Tiddler
     * 时间:2018-08-2018/8/3 17:47
     * 类名:GetDocument
     **/
    public class GetDocument {
        /**
         * 传入一个ULR地址,转为Document给jsoup解析
         * @param url
         * @return
         */
        public static Document get(String url){
            String docStr= CreateRequest.doGET(url);
            Document parse = Jsoup.parse(docStr);
            return parse;
        }
    }

    网络请求类

    /**
     * 作用:发起一个http请求,使用okhttp请求,包含GET和POST请求
     * 作者:Tiddler
     * 时间:2018-08-2018/8/3 16:00
     * 类名:CreateRequest
     **/
    public class CreateRequest {
        private final static Logger log= LogManager.getLogger(CreateRequest.class);
    
        /**
         * GET请求一个地址,并且获取那个地址返回的页面文本
         * @param reqUrl
         * @return
         */
        public static String doGET(String reqUrl){
            if(reqUrl.indexOf("http")==-1){
                reqUrl="http://"+reqUrl;
            }
            String responseContext = null;
            OkHttpClient client = new OkHttpClient();
            //加入一些请求头信息,可以针对大多数做了防爬虫的网页
            Request request = new Request.Builder().url(reqUrl)
                    .addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36")
                    .addHeader("Cookie", "__DAYU_PP=RM6n2mRjmN72jmMj6EEA2a6864d9cc44; _user_behavior_=29bcd06e-a622-4d37-b695-49184ee40871; oscid=18%2B24OHTNObWgBnHCgtLk300eOsXufOKvWH7QK2Ay9CElLuXYaxAILHsw%2BFaKg1sSis1yBGy7tIqZvBCa6l2GXK7Ft8x8NKATm2Iv45JfYRCEpskLpjxpFOZFGHfR3E%2Bqrobjhd%2B3XuDy3ECR9VTzQ2rz4u0Uy1sg97o1G38qCs%3D; bad_id8387c580-a888-11e5-bc38-bb63a4ea0854=1e27ba51-469d-11e8-927f-c364363c7a3c; banner_osc_scr0710=1; aliyungf_tc=AQAAADP46lC7EwoA1NhXZUbBIrn2AIIq; Hm_lvt_a411c4d1664dd70048ee98afe7b28f0b=1531212092,1531352328,1531378414; Hm_lpvt_a411c4d1664dd70048ee98afe7b28f0b=1531384849")
                    .get()
                    .build();
            try {
                Response response = client.newCall(request).execute();
    //            log.debug(response.headers().size());
    //            for(int i=0;i<response.headers().size();i++){
    //                log.debug(response.headers().name(i)+"\t"+response.headers().get(response.headers().name(i)));
    //            }
                byte[] bytes = response.body().bytes();
                responseContext = new String(bytes,"utf-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return responseContext;
        }
    
    }

    好了,基本就这样子了,熟悉Jsoup的其实只要看第一块代码就OK啦!

    展开全文
  • Java截取HTML标签元素获取自己想要的数据 1.如同 2.截取写法 input#hidden_title 3.service层编码(代码片段) //链接地址 private String url = ...

    Java截取HTML标签元素获取自己想要的数据

     

     

    1.如同

     

    2.截取写法

    input#hidden_title

     

     3.service层编码(代码片段)

     

    
    
      //链接地址
      private String url = "http://www.weather.com.cn/weather/101070201.shtml";  
    /**
         * 设置解析配置
         */
        public void process(Page page) {
            //解析页面,nodes方法是获取页面的所有内容
            String str = page.getHtml().css("input#hidden_title").get();
            System.out.println(str);
        }
    
    
    
    

     

     

    展开全文
  • * 去除html代码中含有的标签 * @param htmlStr * @return */ public static String delHtmlTags(String htmlStr) { //定义script的正则表达式,去除js可以防止注入 String scriptRegex="<script...
  • html java处理工具类

    2019-01-04 09:00:59
    提供从html中提取纯文本,从HTML中提取图片链接集合;使用于富文本编辑器存在数据库里面的网页处理
  • Java去掉html标签的各种姿势

    千次阅读 2019-06-12 22:43:10
    业务开发中可能需要将html标签全部去掉,本文将多种方法综合在这里,供大家参考。 二、方法 2.1 纯正则方法 import java.util.regex.Matcher; import java.util.regex.Pattern; public class HTMLSpirit{...
  • java获取标签指定内容

    千次阅读 2019-09-11 13:46:34
    需要处理HTML片断 (一个不完整的HTML文档),从中提取a标签中href的内容 方法 引入Jsoup,maven依赖导入地址链接 代码实例 有段字符串包含许多标签,href有两个,我们取出第一个: String html = "<p style="line...
  • 我们后台添加编辑文章使用的是编辑器,文章内容会带有很多html标签和css样式。RSS订阅展示新闻列表,只需要展示一部分文章内容,这就需要处理文章页的html代码,去除标签,抓取文章文字内容,下面讲一下怎么做,主要...
  • 当一个界面中有HTML代码,... * 该获取图片地址的方法不能排除video与audio标签中的img * @param htmlStr * @return */ public static List<String> getImgStr(String htmlStr) { List<String> pics
  • 工具类记录于此,以供参考。 package ... import org.apache.commons.lang3.StringUtils; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author hilbert.xu * @date...
  • 创景 用户使用HTML富文本编辑器编辑文章上传到...本例子一共用了三个文件,分别是 RegexUtils.java、VideoTagUtils.java 和 Main.java。其中 RegexUtils 类封装了正则表达式的操作。VideoTagUtils 提取视频URL。M...
  • 比如获取<span>中的data-id跟标签内容 <span contenteditable="false" data-id="1004435" style="color: #598cf2; cursor: pointer;">@lyh12345</span> 其中group(int)其中int是reg中第几个()...
  • 今天小编就为大家分享一篇java正则替换img标签中src值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • java 获取html字符串中的img标签src

    千次阅读 2019-11-22 09:56:06
    * 获取img标签的src * */ public static String getImgSrc(String content){ List<String> list = new ArrayList<String>(); //目前img标签标示有3种表达式 //<img alt="" src="1.jpg"/> &l...
  • java 解析 html

    热门讨论 2013-01-11 19:02:27
    java解析网页,可以根据标签的路径获取网页的内容 比如html/body/div/div/
  • java获取html文档中的所有img标签

    千次阅读 2015-11-22 10:15:41
    啥都不说直接贴代码输输出结果
  • 在进行微信小程序的开发或者其他开发过程中,获取到的数据可能含有html标签,此工具类为将html标签过滤,直接获取所使用的文本。
  • java正则表达式去掉html标签

    千次阅读 2017-08-26 16:35:41
    java获取到的值中会参杂这html标签,这不是我们想要的,那么我们该如何简便的去掉其中的所有html标签呢? html标签大都环绕着来去掉字符串中所有的html标签: String.replaceAll("]*>",""); String.replaceAll...
  • JAVA获取html网页中的图片src内容

    万次阅读 2018-01-11 16:35:41
    有很多时候会有这样的需求,获取一个网页中图片的路径,在Java中,可以使用Pattern类、Matcher类,配合正则表达式来获取一个字符串中需要的特定内容。 首先来看一下网页中一个标签所处的位置,例如:String content...
  • Java代码中解析html,获得其中的值

    万次阅读 2017-07-09 12:09:49
    有时我们获取到了页面需要在Java代码中进行解析,获取html中的数据,Jsoup是一个很方便的工具. 一、什么是Jsoup?  官网网站:http://jsoup.org/   可在官网下载对应的jar  通俗的将Jsoup就是一个解析网页的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 207,300
精华内容 82,920
关键字:

java获取html标签

java 订阅