java爬html标签(html爬取特定的标签)

本篇文章给大家谈谈javahtml标签,以及html爬取特定的标签对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、如何使用java的正则表达式提取html标签2、java爬取知乎答案的时候,如何去除其中的HTML标签3、java爬虫 怎么动态的获取html4、java提取html标签信息里面的内容并排好序

如何使用java的正则表达式提取html标签

//我随便写了一个工具类,getRegexData就是那个方法,你可以根据你的需求稍加改动即可因为我使用的

//URL 而不是HttpClient,所以数据是全部获取过来了,你自己改改吧!不懂再问我

package com.wdy.util;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

 * 工具类

 * @author WDY

 *

 */

public class Tool {

    public static void main(String[] args) {

        System.out.println(getRegexData(“img[ ]*src.*?jpg\””, “img src=\”img1.jpg\”img src=\”img2.jpg\””));

        

        

        try {

            URL url=new URL(“”);

            String stringData=getStringFromInputStream(url.openStream());

            System.out.println(stringData+”—————————————-“);

            System.out.println();

            

            System.out.println(getRegexData(“http://.{6,70}?(png|jpg)”, stringData));

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    /**

     * 给一个正则表达式,和数据,将正则匹配到的数据全数取出来

     * 

     * @param regex

     * @param data

     * @return ListString

     */

    public static ListString getRegexData(String regex,String data){

        Pattern pattern=Pattern.compile(regex);

        Matcher matcher=pattern.matcher(data);

        ListString resultList=new ArrayListString();

        int index=0;//搜索的位置

        String temp=””;

        /* 从指定位置查找,如果找到了,就继续执行下面的代码 */

        while(matcher.find(index)){

            temp=matcher.group();//将匹配到的数据取出来放到集合中去

            resultList.add(temp);

            index+=temp.length();//将查找位置放到此时找到的数据后面

            System.out.println(index);

        }

        return resultList;

    }

    /**

     * 将输入流装成字符串

     * @param is

     * @return

     */

    public static String getStringFromInputStream(InputStream is)throws IOException{

        

        StringBuilder sbl=new StringBuilder();

        byte[] buff=new byte[1024*8];

        int len;

        int i=0;

        while((len=is.read(buff))!=-1){

            sbl.append(new String(buff,0,len,”utf-8″));

            System.out.println(i++);

        }

        System.out.println(sbl.length());

        return sbl.toString();

    }

}

java爬html标签(html爬取特定的标签)

java爬取知乎答案的时候,如何去除其中的HTML标签

可以通过正则表达式去除html标签

import java.util.regex.Matcher;  

import java.util.regex.Pattern;  

  

public class HtmlUtil {  

    private static final String regEx_script = “script[^]*?[\\s\\S]*?\\/script”; // 定义script的正则表达式  

    private static final String regEx_style = “style[^]*?[\\s\\S]*?\\/style”; // 定义style的正则表达式  

    private static final String regEx_html = “[^]+”; // 定义HTML标签的正则表达式  

    private static final String regEx_space = “\\s*|\t|\r|\n”;//定义空格回车换行符  

      

    /** 

     * @param htmlStr 

     * @return 

     *  删除Html标签 

     */  

    public static String delHTMLTag(String htmlStr) {  

        Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);  

        Matcher m_script = p_script.matcher(htmlStr);  

        htmlStr = m_script.replaceAll(“”); // 过滤script标签  

  

        Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);  

        Matcher m_style = p_style.matcher(htmlStr);  

        htmlStr = m_style.replaceAll(“”); // 过滤style标签  

  

        Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);  

        Matcher m_html = p_html.matcher(htmlStr);  

        htmlStr = m_html.replaceAll(“”); // 过滤html标签  

  

        Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);  

        Matcher m_space = p_space.matcher(htmlStr);  

        htmlStr = m_space.replaceAll(“”); // 过滤空格回车标签  

        return htmlStr.trim(); // 返回文本字符串  

    }  

      

    public static String getTextFromHtml(String htmlStr){  

        htmlStr = delHTMLTag(htmlStr);  

        htmlStr = htmlStr.replaceAll(” “, “”);  

        htmlStr = htmlStr.substring(0, htmlStr.indexOf(“。”)+1);  

        return htmlStr;  

    }  

      

    public static void main(String[] args) {  

        String str = “div style=’text-align:center;’ 整治“四风”   清弊除垢br/span style=’font-size:14px;’ /spanspan style=’font-size:18px;’公司召开党的群众路线教育实践活动动员大会/spanbr//div”;  

        System.out.println(getTextFromHtml(str));  

    }  

}

java爬虫 怎么动态的获取html

package httpclient_learn;import java.io.IOException;import org.apache.http.HttpEntity;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.utils.HttpClientUtils;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;public class HttpClientTest {

public static void main(String[] args) { //1.生成httpclient,相当于该打开一个浏览器

CloseableHttpClient httpClient = HttpClients.createDefault();

CloseableHttpResponse response = null; //2.创建get请求,相当于在浏览器地址栏输入 网址

HttpGet request = new HttpGet(“”); try { //3.执行get请求,相当于在输入地址栏后敲回车键

response = httpClient.execute(request);

//4.判断响应状态为200,进行处理

if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { //5.获取响应内容

HttpEntity httpEntity = response.getEntity();

String html = EntityUtils.toString(httpEntity, “utf-8”);

System.out.println(html);

} else { //如果返回状态不是200,比如404(页面不存在)等,根据情况做处理,这里略

System.out.println(“返回状态不是200”);

System.out.println(EntityUtils.toString(response.getEntity(), “utf-8”));

}

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally { //6.关闭 HttpClientUtils.closeQuietly(response);

HttpClientUtils.closeQuietly(httpClient);

}

}

}

java提取html标签信息里面的内容并排好序

如果懂一点Java知识就知道一共需要以下几个部分:

1.首先使用xml的一个dom解析获取到这个html后

2. 通过获取所有的A标签的Element

3.然后就可以根据这个Element获取到text信息了。

4.通过”java”或者空格作为分隔符使用split方法就可以区分出你的“提取出来的结果”和“百分比

”。

5.最后排序。

java爬html标签的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于html爬取特定的标签、java爬html标签的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月30日 15:59:09
下一篇 2024年3月30日 16:07:26

相关推荐

  • 深入java虚拟机pdf,深入java虚拟机 中村成洋 pdf

    在linux环境下,java怎么实现从word格式转换为pdf格式 //设置当前使用的打印机,我的Adobe Distiller打印机名字为 Adobe PDF wordCom.setProperty( ActivePrinter , new Variant( Adobe PDF ));//设置printout的参数,将word文档打印为postscript…

    2024年5月23日
    4600
  • java截取指定长度字符串,java截取指定字符串之后的

    java中如何截取字符串中的指定一部分 第一个参数是开始截取的字符位置。(从0开始)第二个参数是结束字符的位置+1。(从0开始)indexof函数的作用是查找该字符串中的某个字的位置,并且返回。 int end);截取s中从begin开始至end结束时的字符串,并将其赋值给s;split讲解:java.lang.string.split split 方法 将…

    2024年5月23日
    4400
  • java绑定一个端口,java使用端口

    java如何多个service共用一个端口 你如果有多个项目的话,你可以把多个项目放到一个tomcat里面,这样端口相同使用项目名称来进行区分项目。你如果非要使用同一个,你也可以配置不同的域名导向不同的项目。就是访问的域名不同转接到的项目不同。 如果需要同时启动多个程序,要么修改tomcat的配置文件中的监听端口。要么修改jar包程序的监听端口。不能在一台服…

    2024年5月23日
    3600
  • java多线程并发编程基础,Java多线程并发执行返回

    电脑培训分享Java并发编程:核心理论 电脑培训发现本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制。 人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接…

    2024年5月23日
    4800
  • 自学java找工作,自学java找工作需要包装简历吗

    自学java学多久可以找到工作 1、自学Java至少需要一年以上的时间才能达到找工作的水平。报班培训四到六个月的时间就可以找到一份不错的工作。 2、自学Java至少需要一年以上的时间才能达到找工作的水平。 3、如果要想找到一份Java相关的工作,需要至少学习5-6个月时间才能就业。Java开发需要掌握一些基础的编程语言知识,比如掌握面向对象的编程思想、基本的…

    2024年5月23日
    4400
  • java左移右移,java 左移

    java位移问题 1、思路:直接用Integer类的bit运算操作。 2、移位操作:左移:向左移位,符号后面的数字是移了多少位,移的位用0补齐,例如2进制数01111111左移一位后变为11111110,移位是字节操作。 3、Java 位运算 Java 位运算[转]一,Java 位运算表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的…

    2024年5月23日
    4300
  • java技术规范,java规范性要求

    现在主流的JAVA技术是什么? java最流行开发技术程序员必看 1 、Git Git一直是世界上最受欢迎的Java工具之一,也是Java开发人员最杰出的工具之一。Git是一个开源工具,是-种出色的分布式版本控制解决方案。 (1).Java基础语法、数组、类与对象、继承与多态、异常、范型、集合、流与文件、反射、枚举、自动装箱和注解。(2).Java面向对象编…

    2024年5月23日
    4100
  • javasocket编程,Java socket编程中,禁用nagle算法的参数

    Java进行并发多连接socket编程 1、Java可利用ServerSocket类对外部客户端提供多个socket接口。基本的做法是先创建一个ServerSocket实例,并绑定一个指定的端口,然后在这个实例上调用accept()方法等待客户端的连接请求。 2、Socket socket=server.accept(0;Thread handleThrea…

    2024年5月23日
    4700
  • java死亡,java死代码是什么意思

    我的世界传送回死亡点指令是什么? 1、下面就让我们一起来了解一下吧:我的世界回到死的地方的指令是输入/back,就可以回到死亡地点了,当然也可以看信标,因为死亡后会有一道光集中在死亡点,只要循着光就可以找到目的地了。 2、在服务器中的指令 首先打开指令台,在指令行输入“/back”就可以回到自己的死亡地点了。在单人游戏中的指令 在单人游戏中,您无法直接返回到…

    2024年5月23日
    4900
  • myeclipse能部署java工程么,myeclipse支持jdk18

    myeclipse如何建java文件 1、点击【File】—【New】–【Class】在如下界面,输入Class的名字,如Test,点击【Finish】。Test.java文件创建成功。 2、点击【File】—【New】–【Class】 在如下界面,输入Class的名字,如Test,点击【Finish】。 Te…

    2024年5月23日
    4100

发表回复

登录后才能评论



关注微信