/********************************************************
SQL> CREATE TYPE url_title AS OBJECT (
2 url VARCHAR(128),
3 title VARCHAR(128) );
SQL> CREATE TYPE urls_typ AS TABLE OF url_title;
SQL> CREATE TABLE www_index (
2 keyword VARCHAR(64) PRIMARY KEY,
3 urls urls_typ
4 ) NESTED TABLE urls STORE AS urls_tbl;
********************************************************/
|
|
|
import java.io.*;
import java.lang.*;
import java.sql.*;
public class Spider {
public static void main( String args[ ] )
throws SQLException {
int i = Integer.parseInt( args[0] );
new Reminder( i );
DriverManager.registerDriver(
new oracle.jdbc.driver.OracleDriver( ) );
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@172.20.4.9:1521:aero", "userid", "password");
|
|
|
try {
Runtime run = Runtime.getRuntime( );
String query = "/usr/bin/lynx -dump " + args[2];
Process pp = run.exec( query );
BufferedReader in = new BufferedReader(
new InputStreamReader( pp.getInputStream( ) ) );
|
|
|
String line;
test: while ( ( line = in.readLine( ) ) != null ) {
if ( line.indexOf( args[1] ) != -1 ) {
try {
Statement stmt1 = conn.createStatement( );
query = "SELECT * FROM www_index WHERE keyword='" + args[1] + "'";
ResultSet rset = stmt1.executeQuery( query );
|
|
|
if ( rset.next( ) ) {
query = "INSERT INTO TABLE( SELECT urls FROM www_index";
query += " where keyword=? ) VALUES ( url_title('";
query += args[2] + "', '" + args[3] + "' ) )";
PreparedStatement stmt2 = conn.prepareStatement( query );
stmt2.setString( 1, args[1] );
stmt2.execute( );
stmt2.close( );
}
|
|
|
else {
query = "INSERT INTO www_index VALUES ('";
query += args[1] + "', urls_typ(url_title('";
query += args[2] + "', '" + args[3] + "')))";
stmt1.executeUpdate( query );
stmt1.close( );
}
rset.close ( );
break test;
}
catch ( SQLException ex ) {
System.out.println( ex );
}
}
}
}
catch ( Exception e ) {
System.out.println( e );
}
conn.close( );
}
}
|
|
|