Encontrando e apresentando hyperlinks existentes em uma página Web

Veja nesta dica como extrair os links existentes em um arquivo HTML.

Encontrando e apresentando hyperlinks existentes em uma página Web

O código apresentado abaixo utiliza expressões regulares para encontrar e apresentar os hyperlinks existentes em uma página Web. Depois de compilar este código, você deve salvar a página web na mesma pasta que contém o arquivo. ShowLinks.class.

import java.io.*;
<B><SPAN >import </SPAN></B><SPAN >java.util.regex.*;</SPAN>

<B><SPAN >public class </SPAN></B><SPAN >ShowLinks {</SPAN>
<B><SPAN >public static void </SPAN></B><SPAN >main(String[] arguments) {</SPAN>
<B><SPAN >if </SPAN></B><SPAN >(arguments.length < </SPAN><SPAN >1</SPAN><SPAN >) {</SPAN>
<SPAN >System.out.println(</SPAN><SPAN >"java ShowLinks [page]"</SPAN><SPAN >);</SPAN>
<SPAN >System.exit(</SPAN><SPAN >0</SPAN><SPAN >);</SPAN>
<SPAN >}</SPAN>
<SPAN >String page = loadPage(arguments[</SPAN><SPAN >0</SPAN><SPAN >]);</SPAN>
<SPAN >Pattern pattern = Pattern.compile(</SPAN><SPAN >"<a.+href=\"(.+?)\""</SPAN><SPAN >);</SPAN>
<SPAN >Matcher matcher = pattern.matcher(page);</SPAN>
<B><SPAN >while </SPAN></B><SPAN >(matcher.find()) {</SPAN>
<SPAN >System.out.println( matcher.group(</SPAN><SPAN >1</SPAN><SPAN >));</SPAN>
<SPAN >}</SPAN>
<SPAN >}</SPAN>

<B><SPAN >private static </SPAN></B><SPAN >String loadPage(String name) {</SPAN>
<SPAN >StringBuffer output = </SPAN><B><SPAN >new </SPAN></B><SPAN >StringBuffer();</SPAN>
<B><SPAN >try </SPAN></B><SPAN >{</SPAN>
<SPAN >FileReader file = </SPAN><B><SPAN >new </SPAN></B><SPAN >FileReader(name);</SPAN>
<SPAN >BufferedReader buff = </SPAN><B><SPAN >new </SPAN></B><SPAN >BufferedReader(file);</SPAN>
<B><SPAN >boolean </SPAN></B><SPAN >eof = </SPAN><B><SPAN >false</SPAN></B><SPAN >;</SPAN>
<B><SPAN >while </SPAN></B><SPAN >(!eof) {</SPAN>
<SPAN >String line = buff.readLine();</SPAN>
<B><SPAN >if </SPAN></B><SPAN >(line == </SPAN><B><SPAN >null</SPAN></B><SPAN >)</SPAN>
<SPAN >eof = </SPAN><B><SPAN >true</SPAN></B><SPAN >;</SPAN>
<B><SPAN >else</SPAN></B>
<SPAN >output.append(line + </SPAN><SPAN >"\n"</SPAN><SPAN >);</SPAN>
<SPAN >}</SPAN>
<SPAN >buff.close();</SPAN>
<SPAN >} </SPAN><B><SPAN >catch </SPAN></B><SPAN >(IOException e) {</SPAN>
<SPAN >System.out.println(</SPAN><SPAN >"Erro -- " </SPAN><SPAN >+ e.toString());</SPAN>
<SPAN >}</SPAN>
<B><SPAN >return </SPAN></B><SPAN >output.toString();</SPAN>
<SPAN >}</SPAN>
<SPAN >}</SPAN>

Artigos relacionados