java는 htmlparser를 이용하여 html에서 원하는 코드를 구체적으로 실현합니다
바로 코드에서 보십시오.
우선 가져오기 패키지는:import org입니다.htmlparser 아래 가방
List<Mp3> mp3List = new ArrayList<Mp3>();
try{
Parser parser = new Parser(htmlStr);// Parser, org.htmlparser。 。 html 。 URl
parser.setEncoding("utf-8");//
AndFilter filter =
new AndFilter(
new TagNameFilter("div"),
new HasAttributeFilter("id","songListWrapper")
);// filter div div id songListWrapper
NodeList nodes = parser.parse(filter);// filter nodes
Node node = nodes.elementAt(0);
NodeList nodesChild = node.getChildren();
Node[] nodesArr = nodesChild.toNodeArray();
NodeList nodesChild2 = nodesArr[1].getChildren();
Node[] nodesArr2 = nodesChild2.toNodeArray();
Node nodeul = nodesArr2[1];
Node[] nodesli = nodeul.getChildren().toNodeArray();// nodesli
for(int i=2;i<nodesli.length;i++){
//System.out.println(nodesli[i].toHtml());
Node tempNode = nodesli[i];
TagNode tagNode = new TagNode();// TagNode , Node TagNode
tagNode.setText(tempNode.toHtml());
String claStr = tagNode.getAttribute("class");//claStr bb-dotimg clearfix song-item-hook { 'songItem': { 'sid': '113275822', 'sname': ' ', 'author': ' ' } }
claStr = claStr.replaceAll(" ", "");
if(claStr.indexOf("\\?")==-1){
Pattern pattern = Pattern.compile("[\\s\\wa-z\\-]+\\{'songItem':\\{'sid':'([\\d]+)','sname':'([\\s\\S]*)','author':'([\\s\\S]*)'\\}\\}");
Matcher matcher = pattern.matcher(claStr);
if(matcher.find()){
Mp3 mp3 = new Mp3();
mp3.setSid(matcher.group(1));
mp3.setSname(matcher.group(2));
mp3.setAuthor(matcher.group(3));
mp3List.add(mp3);
//for(int j=1;j<=matcher.groupCount();j++){
//System.out.print(" "+j+"--->"+matcher.group(j));
//}
}
}
//System.out.println(matcher.find());
}
}catch(Exception e){
e.printStackTrace();
}
이상은 제가 프로젝트에서 분석한 것입니다. 사용은 비교적 간단하고 손에 넣기 쉽습니다.///claStr는 bb-dotimg clearfix song-item-hook {'song Item': {'sid':'113275822','sname':'내 요구가 높지 않다','author':'황발웹 페이지에서 해석된 내용이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.