2013-01-04

利用 Groovy + jsoup 來擷取網頁內容

今天一位朋有希望我幫它把某人在 yahoo 拍賣上的物品清單抓下來,剛好讓我試試利用 Groovy 及 jsoup 來處理:

@Grab('org.jsoup:jsoup:1.7.1')
def url = "http://tw.user.bid.yahoo.com/tw/show/rating";
def emptyList = ["?userID=Y6259654674&rate=seller&pg=1"];
def result = [];
for (int i = 0; i < emptyList.size(); i++) {
def param = emptyList.get(i);
def doc = org.jsoup.Jsoup.connect(url + param).get()
println param;
// 擷取名稱
doc.select(".aidpname a").each {
node->
result.add(node.text());
}
// 取得分頁資料
doc.select(".pagination a").each {
node->
if(!emptyList.contains(node.attr('href'))){
emptyList.add(node.attr('href'));
}
}
}
// 列印
result.sort().unique().each {
name->
println name;
}
參考:
http://blog.lyhdev.com/2012/12/groovy-jsoup-java-html-parser.html