⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 search.java

📁 实现从某个网站的全部遍历
💻 JAVA
字号:
package com.yinyueku;

import java.sql.*;
import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;

public class Search {

	/**
	 * @param args
	 */
	/*
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        String searchUrl;
		String strSongName;
		String strListenUrl;
		String strZhuanji;
		String strGeciUrl;
		String strDownload;
		String strDownloadUrl;
		
		//从数据库中查询,返回结果集
		try {
						Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

						Connection con = DriverManager.getConnection(
										"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=chenlei",
										"sa", "12345");
						Statement stmt = con.createStatement();
					  String sql="SELECT strSingerUrl FROM SINGERS001";
						System.out.println(sql);
            ResultSet rs = stmt.executeQuery(sql);
            //ResultsetMetaData  rsmd=rs.getMetaData();
            //rsmd.getColumnCount();   //返回结果集中的列数             
            //rsmd.getColumnLabel(1); //返回第一列的列名(字段名)
            //for(int i=1; i<=rs.getMetaData().getColumnCount(); i++)   //跟踪显示各个列的名称
            //{      System.out.print(rs. getColumnName(i)+"\t");
            //}
            while(rs.next())
            {  //跟踪显示各个列的值
            	for(int j=1; j<=rs.getMetaData().getColumnCount(); j++)
            	{
            	searchUrl=rs.getString();
            	System.out.println(searchUrl);
            	try {
            		Parser parser = new Parser(searchUrl);
			parser.setEncoding("gb2312");
			HasAttributeFilter fil = new HasAttributeFilter();
			fil.setAttributeName("class");
			fil.setAttributeValue("p14");

			NodeList list = parser.parse(fil);
			System.out.println(list.size());
			for (int i = 0; i < list.size(); i++) {
				System.out.println();
				Node node = list.elementAt(i);
				Node node1=node.getFirstChild().getNextSibling();
				Node node11=node1.getFirstChild().getFirstChild();
				strSongName=node11.toPlainTextString();
				System.out.println(strSongName);
				LinkTag linkTag1 = (LinkTag) node1;
		        strListenUrl = linkTag1.getLink();
				System.out.println("试听地址:"+strListenUrl);
				
                Node node2=node1.getNextSibling().getNextSibling();
				strZhuanji = node2.getFirstChild().getFirstChild().toPlainTextString();
				System.out.println("专辑名:"+strZhuanji);
				
                Node node3=node2.getNextSibling();
                Node node31=node3.getFirstChild();
                LinkTag linkTag3 = (LinkTag) node31;
		        strGeciUrl = linkTag3.getLink();
				System.out.println("歌词地址:"+strGeciUrl);
				
				Node node4=node3.getNextSibling().getNextSibling();
                Node node41=node4.getFirstChild();
                LinkTag linkTag4 = (LinkTag) node41;
		        strDownload = linkTag4.getLink();
				System.out.println("下载页面:"+strDownload);
				
				Parser ps = new Parser(strDownload);
				ps.setEncoding("gb2312");
				HasAttributeFilter f = new HasAttributeFilter();
				f.setAttributeName("height");
				f.setAttributeValue("9%");
				NodeList items = ps.extractAllNodesThatMatch(f);
				for (int k= 0; k < items.size(); k++) {
					Node n = items.elementAt(k);
					Node n1 = n.getFirstChild();
                    LinkTag linkTag = (LinkTag) n1;
					strDownloadUrl = linkTag.getLink();
					System.out.println("下载地址:"+strDownloadUrl);


					/*try {
						Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

						Connection con = DriverManager.getConnection(
										"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=chenlei",
										"sa", "12345");
						Statement stmt = con.createStatement();
						//stmt.executeUpdate("CREATE TABLE SINGERS "+ "(SINGER_NAME VARCHAR(32), SINGER_URL VARCHAR(64))");
					  String sql="Insert into SINGERS001 values('"+strSingerName+"','"+strSingerUrl+"')";
						System.out.println(sql);
						stmt.executeUpdate(sql);

						System.out.println("Insert into table ok!");
			           } catch (Exception e) {
						e.printStackTrace();
					   }
				}
			}
			}catch (ParserException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		     }
         }

	}
}catch (ParserException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
     }
}*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -