2017-08-18 1 views
0

Je veux obtenir mon classement leetcode, Mais je connais un peu le HTML et JavaScript. Après beaucoup d'essais, j'obtiens cette sortie.comment obtenir le classement leetcode avec goquery

classement de aQuaYi est Classement: {[{pc.ranking}]}

source est

package main 
import (
    "fmt" 
    "log" 

    "github.com/PuerkitoBio/goquery" 
) 

func showRanking(username string) { 
    URL := fmt.Sprintf("https://leetcode.com/%s", username) 
    doc, err := goquery.NewDocument(URL) 
    if err != nil { 
     log.Fatal(err) 
    } 

    ranking, _ := doc.Find("div.panel-body").Find("span.ranking").Attr("data-content") 

    fmt.Printf("%s's ranking is %v", username, ranking) 
} 

func main() { 
    showRanking("aQuaYi") 
} 

S'il vous plaît aider moi finir ce code, Merci beaucoup.

Répondre

0
func getRanking(username string) string { 
    URL := fmt.Sprintf("https://leetcode.com/%s/", username) 
    fmt.Println(URL) 

    data := getRaw(URL) // or your way to get raw html page down 
    str := string(data) 
    i := strings.Index(str, "ng-init") 
    j := i + strings.Index(str[i:], "ng-cloak") 
    str = str[i:j] 

    i = strings.Index(str, "(") 
    j = strings.Index(str, ")") 
    str = str[i:j] 

    strs := strings.Split(str, ",") 
    ans := strs[5] 
    i = strings.Index(ans, "'") 
    j = 2 + strings.Index(ans[2:], "'") 

    return ans[i+1 : j] 
}