kh0d3x
Una vez que le entregas al matchet el pattern, debes utilizar el método find para encontrar las coincidencias, si deseas tener todas las coincidencias, puedes usar un while.
Te dejo un ejemplo funcional
- Extración del contenido (String) de una url
- Extración de datos utilizando expresiones regulares
Código JAVA:
Ver originalpackage extraerdatos;
import java.io.*;
import java.net.*;
import java.util.regex.*;
/**
* @author deerme.org
*/
public class GetPlayers
{
public GetPlayers
( String url
) {
this.url_site = url;
this.content = "";
}
{
try
{
// Get Content
byte[] buff = new byte[4096];
URL url
= new URL( this.
url_site );
int bytesRead = 0;
while ((bytesRead = bis.read(buff)) != -1)
{
strContents
= new String(buff,
0, bytesRead
); this.content = this.content + strContents;
}
bis.close();
return true;
{
return false;
}
}
public void ExtractData()
{
int i; int nresult=0;
if ( !this.content.equals("") )
{
Pattern pt = Pattern.compile("<tr class=\"odd\"><td>(.*?)</td><td><a href=\".*?\">(.*?)</a></td><td><a href=\".*?\">(.*?)</a></td><td>(.*?)</td><td>(.*?)</td><td>(.*?)</td> </tr>");
Matcher mt = pt.matcher( this.content );
System.
out.
println("Equipo\tPosición\tJugador\tPuntos"); while( mt.find() == true)
{
System.
out.
println( mt.
group(3) + "\t" + mt.
group(1) + "\t" + mt.
group(2) + "\t" + mt.
group(4) ); }
}
}
}
Código JAVA:
Ver original// En mi caso utilizo un proxy para salir a la red
public class Main {
public static void main
(String[] args
) {
System.
setProperty("http.proxyHost",
"localhost"); System.
setProperty("http.proxyPort",
"8889");
GetPlayers pl = new GetPlayers("http://www.nomaskeine.com/estadisticas/puntos/25/mejores/jugadores");
pl.GetContent();
pl.ExtractData();
}
}