2011-11-22 41 views
0

我成功地閱讀this site使用simpleML處理和獲得第一個用戶名(這是babesmcphee),但我沒有得到第二個用戶名(這是JohnCMayer)或第三個,第四,等等。 我不確定我是否正確地使用Stringshtml.indexOf,我正在考慮做一個for loop並將用戶名設置爲arraySimpleML進一步搜索頁面源

這裏是我的代碼:

import simpleML.*; 

void setup() { 
HTMLRequest req = new HTMLRequest(this,"http://tweetingtoohard.com/top"); 
req.makeRequest(); 
} 

void netEvent(HTMLRequest answer) { 
    String html = answer.readRawSource();  
    String link_filter = "/u/"; 
    int first_link_start = html.indexOf(link_filter); 
    String link_filter_stop = "</a>"; 
    int first_link_end = html.indexOf(link_filter_stop, first_link_start+3); 
    String real_link_end_filter = "\""; 
    int real_link_end = html.indexOf(real_link_end_filter, first_link_start); 
    String first_link = html.substring(first_link_start+3,real_link_end); 
    println(first_link); 
} 

謝謝!

回答

0

「答案」包含整個頁面,所以你必須實現一個循環來獲取所有的名字。

像這樣:

public void netEvent(HTMLRequest answer) { 
    String html = answer.readRawSource(); 

    int from = 0; 
    int pos; 
    while ((pos = html.indexOf("/u/", from)) != -1) { 
    int end = html.indexOf("\"", pos); 
    System.out.println(html.substring(pos + 3, end)); 
    from = html.indexOf("</a>", pos + 3); 
    } 
} 
+0

謝謝你這麼多,這個固定的一切! – user47