Comment naviguer sur des sites Web en utilisant Jsoup en java
Comment puis-je naviguer (comme l'exploration Web) dans Jsoup vers un lien différent?
, Pour cet exemple, j'ai fait les bases pour le titre, obtenir des liens et d'obtenir des textes. Mais je veux pouvoir utiliser l'un de ces liens enfants et aller à l'intérieur de ce lien enfant.
Par exemple, à partir de la page Web de Google, je veux pouvoir accéder à la page youtube car c'est l'un des liens enfants de Google et une fois sur youtube, choisissez un autre lien enfant et que vous puissiez saisir une chaîne.
Comment pourrais-je être capable de le faire dans Jsoup?
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JSoupTest {
public static void main(String args[]) {
try {
Document doc=Jsoup.connect("http://www.google.com").get();
// get page title
String title = doc.title();
System.out.println(title);
//gets all links
Elements links = doc.select("a[href]");
for (Element link : links) {
// get the value from href attribute
System.out.println("\nlink : " + link.attr("href"));
}
for( Element element : doc.select("p") )
// Select all 'p'-Tags and loop over them
{
if( element.hasText() )
// Check if the element has text (since there are some empty too)
{
System.out.println(element.text()); // print the element's text
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
1
1 answers
Vous devez récupérer cette page, c'est-à-dire
String link_addr = link.attr("href");
Document link_doc = Jsoup.connect(link_addr).get();
// do stuff with link_doc
Si vous traitez beaucoup de pages enfants du même type, vous voudrez probablement créer une méthode d'aide pour ce faire, c'est-à-dire
public void do_stuff_with(String link_addr){
String link_addr = link.attr("href");
Document link_doc = Jsoup.connect(link_addr).get();
// do stuff with link_doc
}
1
Author: selig, 2013-06-11 17:16:49