本文目錄一覽:
java程序怎麼讀取html網頁?
步驟:
一、使用java.net包下的URL類,可以將一個網頁(鏈接)封裝成一個URL對象。
二、URL對象有一個openStream()方法,使用該方法可以獲取該網頁的輸入流,我們可以通過讀取輸入流的方式獲得網頁的內容,並通過輸出流寫入HTML文件中。
補充:
步驟:
1.通過URL對象的openStream()方法獲得網頁的位元組輸入流 。
2.為位元組輸入流加緩衝 。
3. 創建位元組輸出流對象 。
4. 為位元組輸出流加緩衝 。
5. 讀取數據,並寫入HTML文件 。
java解析html是jsoup還是htmlparse還是其他的什麼
用jsoup解析html或者htmlparse,不過比較難用,jsoup是jquery語法比較方便。
java怎樣讀取html文件
java可以使用jsoup、htmlparser等工具進行html的讀取和解析,以下是詳細說明:
1、jsoup 是一款 Java 的HTML 解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於JQuery的操作方法來取出和操作數據。據說它是基於MIT協議發布的。
jsoup的主要功能如下:
從一個URL,文件或字元串中解析HTML;
使用DOM或CSS選擇器來查找、取出數據;
可操作HTML元素、屬性、文本;
示例代碼:
Document doc = Jsoup.parse(input, “UTF-8”, “”);
Element content = doc.getElementById(“content”);
Elements links = content.getElementsByTag(“a”);
for (Element link : links) {
String linkHref = link.attr(“href”);
String linkText = link.text();
}
java如何解析html文檔
import java.io.*;
import java.util.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;
import javax.swing.text.html.HTMLEditorKit.ParserCallback;
public class Parser extends ParserCallback { //繼承ParserCallback,解析結果驅動這些回調方法
protected String base;
protected boolean isImg = false;
protected boolean isParagraph = false;
protected static VectorString element = new VectorString();
protected static String paragraphText = new String();
public Parser() {
}
public static String getParagraphText() {
return paragraphText;
}
public void handleComment(char[] data, int pos) {
}
public void handleEndTag(HTML.Tag t, int pos) {
if (t == HTML.Tag.P) {
if (isParagraph) {
isParagraph = false;
}
} else if (t == HTML.Tag.IMG) {
if (isImg) {
isImg = false;
}
}
}
public void handleError(String errorMsg, int pos) {
}
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos) {
handleStartTag(t, a, pos);
}
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
if (t == HTML.Tag.P) {
isParagraph = true;
} else if ((t == HTML.Tag.IMG)) {
String src = (String) a.getAttribute(HTML.Attribute.SRC);
if (src != null) {
element.addElement(src);
isImg = true;
}
}
}
public void handleText(char[] data, int pos) {
if (isParagraph) {
String tempParagraphText = new String(data);
if (paragraphText != null) {
element.addElement(tempParagraphText);
;
}
}
}
private static void startParse(String sHtml) {
try {
ParserDelegator ps = new ParserDelegator();//負責每次在調用其 parse 方法時啟動一個新的 DocumentParser
HTMLEditorKit.ParserCallback parser = new Parser();//解析結果驅動這些回調方法。
ps.parse(new StringReader(sHtml), parser, true);//解析給定的流並通過解析的結果驅動給定的回調。
//System.out.println(getParagraphText());
Vector link = element;
for (int i = 0; i link.size(); i++) {
System.out.println(“—-haha—–“);
System.out.println(link.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
try {
String filename = “D://blogbaby.htm”;
BufferedReader brd = new BufferedReader(new FileReader(filename));
char[] str = new char[50000];
brd.read(str);
String sHtml = new String(str);
startParse(sHtml);
} catch (Exception e) {
e.printStackTrace();
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/269996.html