Alıntı:
{"visitors":["Ⱨ₳₵₭ĐɆⱤ₮","baysiberbela","GestapoEfsane","His oka* ","laz123123","LosT","oxydes","RootAdam","Root Beta ","x4807"]}


Kod:
package main
import (
"net/http"
"strconv"
"io/ioutil"
"golang.org/x/text/encoding/charmap"
"github.com/anaskhan96/soup"
"encoding/json"
)
type visitorsJson struct {
Visitors [10]string `json:"visitors"`
}
type vBulletinCookies struct {
vspassword string
vsuserid string
}
func getProfileVisitors(id string, cookies vBulletinCookies) string {
client := http.Client{}
req, _ := http.NewRequest("GET", "https://www.turkhackteam.org/members/"+id+".html", nil)
req.Header.Add("User-Agent", "Mozilla/5.0")
req.AddCookie(&http.Cookie{Name: "vspassword", Value: cookies.vspassword})
req.AddCookie(&http.Cookie{Name: "vsuserid", Value: cookies.vsuserid})
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
decoder := charmap.ISO8859_9.NewDecoder()
iso_body, _ := decoder.Bytes(body)
var visitors [10]string
parser := soup.HTMLParse(string(iso_body))
htmlvisitors := parser.FindAll("div", "class", "s-last-visitors-x")
for i, _ := range htmlvisitors {
visitors[i] = htmlvisitors[i].Find("span").Text()
}
visitorsStruct := visitorsJson{Visitors: visitors}
visitorsJson, _ := json.Marshal(visitorsStruct)
return string(visitorsJson)
}
func home(writer http.ResponseWriter, resp *http.Request) {
var status string
var status_code int
if resp.Method == "GET" {
id := resp.URL.Query().Get("id")
if id != "" {
if _, err := strconv.Atoi(id); err != nil {
status = "Sadece profil ID'si girmelisiniz! Örnek: 926672"
status_code = 400
} else {
writer.Header().Add("Content-Type", "application/json; charset=utf-8")
status = getProfileVisitors(id, vBulletinCookies{vsuserid: "", vspassword: ""}) //kendi vsuserid ve vspassword'ünüz
status_code = 200
}
} else {
status = "id değeri boş olmamalıdır"
status_code = 400
}
}
writer.WriteHeader(status_code)
writer.Write([]byte(status))
}
func main() {
http.HandleFunc("/visitors", home)
http.ListenAndServe(":8080", nil)
}