本篇文章给大家谈谈java爬html标签,以及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标签
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标签的信息别忘了在本站进行查找喔。