2012-05-15 63 views
0

我使用JSoup分析一個網頁上所有鏈接,我再測試這些聚集環節的響應代碼。Jsoup試圖測試JavaScript鏈接

我遇到的問題是一些我的測試有打開使用JavaScript彈出鏈接的網頁。我確定有一種簡單的方法可以避免選擇這個鏈接,但我再也想不到了!

我的代碼:

所有我avise使用一組而不是列表
PingUrls(String pageUrl) { 
     url = pageUrl; 
     int i = 0; 
     int retries = 3; 

     while (i < retries){ 
      try { 
       response = Jsoup.connect(url) 
         .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21") 
         .timeout(10000) 
         .execute(); 
       success = true; 
       break; 
      } catch (IOException e) { 
      } 
      System.out.println("Attempt "+i); 
      i++; 
     } 
    } 

    public int getUrlStatus(){ 
     if(success){ 
      int statusCode = response.statusCode(); 
      return statusCode; 
     }else { 
      return 404; 
     } 
    } 

    public ArrayList<String> getLinks(String targetValue){ 
     ArrayList<String> urls = new ArrayList<String>(); 
     try { 
      Document doc = response.parse(); 

      Elements element = doc.select(targetValue+" a[href]"); 
      for (Element page : element){ 
       urls.add(page.attr("abs:href")); 
      }   
      return urls; 
     } catch (IOException e) { 
      System.out.println(e); 
      return null; 
     } 
    } 
+0

你可以提供一個網址,你解析嗎? – vacuum

回答

1

第一。 (如果你不熟悉的集合,一組將確保有沒有重複的元素)

而且,我把喜歡manageURL(字符串URL)的方法;然後將其添加到集合中。在它裏面進行一些測試,以確保它能夠按照你想要的方式去做。像測試url的絕對路徑,規範路徑,並確保它是http或https protocoled。