2016-05-13 6 views
0

Ich versuche zu überprüfen, ob eine Seite die nächste Seite enthält, um zu rollen. Die Idee ist einfach: Holen Sie sich den aktuellen Link, entfernen Sie den Index am Ende und fügen Sie dann einen neuen Index ein, versuchen Sie, eine Verbindung mit dem neuen Link herzustellen, wenn IOException ausgelöst wird, dh es hat keine nächste Schaltfläche, sodass gescrollt werden kann. Hier ist mein Code, und das Problem gibt es falsch, auch zu den Links, die Jsoup verbinden:Java jsoup Prüftaste

public boolean checkNextButton(String linkToCheck) throws IOException { 

     boolean containsNextButton = true; 
     try { 
      //Here I am trying to connect to a link which is actually available but it still returns false 
      Document doc = Jsoup.connect(turnToNextPage(linkToCheck)).get(); 
      specific.setPageChangeRate(specific.getPageChangeRate() - 1); 
      //Set back the counter to the previous one 
     } catch (IOException e) { 

      containsNextButton = false; 
     } 
     System.out.println("The page contains next button: " + containsNextButton); 
     return containsNextButton; 
    } 
+1

Es ist schwer zu sagen, was genau ohne mehr Details schief gelaufen ist. Können Sie über den Browser auf die Ressource von 'linkToCheck' zugreifen? Mußten Sie sich zuerst auf dieser Site einloggen (vielleicht versuchen Sie, über den Inkognito-Modus darauf zuzugreifen, um zu sehen, ob sie für jeden verfügbar ist, ohne einen Account zu erstellen). Anderes Problem könnte sein, dass einige Server nur bestimmte Browser zulassen und sie versuchen, sie zu erkennen, indem sie user-agent header browsers send verwenden, oder wenn der Server temporäre Sitzungen erstellt, müssen Sie möglicherweise Cookies von der vorherigen Verbindung übergeben. – Pshemo

+0

Ja, ich kann über den Browser zugreifen, aber lassen Sie mich nach den anderen Problemen suchen, die Sie erwähnt haben :) – imoteb

+0

@Phemo Vielen Dank, es war wegen des User-Agent wie du erwähnt hast, jetzt gibt es wahr zurück – imoteb

Antwort

0

Lösung zur Verfügung gestellt von Pshemo:

Es ist schwer zu sagen, was genau schief gelaufen ist, ohne weitere Details .

Können Sie über den Browser auf die Ressource von linkToCheck zugreifen? Mußten Sie sich zuerst auf dieser Site einloggen (vielleicht versuchen Sie, über den Inkognito-Modus darauf zuzugreifen, um zu sehen, ob sie für jeden verfügbar ist, ohne einen Account zu erstellen).

Anderes Problem könnte sein, dass einige Server nur bestimmte Browser zulassen und sie versuchen, sie zu erkennen, indem sie user-agent header browsers send verwenden, oder wenn der Server temporäre Sitzungen erstellt, müssen Sie möglicherweise Cookies von früheren Verbindungen übergeben.