301 код состояния после PostForm

Я пытаюсь написать программу, которая будет входить в ahrefs.com и разобрать некоторые данные. Сначала я отправляю запрос GET ahrefs.com чтобы получить куки и html для разбора необходимого токена:

    client := &http.Client{}
    jar := &myjar{}
    jar.jar = make(map[string] []*http.Cookie)
    client.Jar = jar
    resp, _ := client.Get("https://ahrefs.com")

    root, _ := html.Parse(resp.Body)
    element, _ := getElementByName("_token", root)
    token := ""
    for _, a := range element.Attr {
        if a.Key == "value" {
            token = a.Val
        }
    }

Затем я отправляю запрос POST, используя PostForm в ahrefs.com/user/login/, Я заполняю поля правильными данными (проверил это через браузер). Когда я отправляю форму в браузере, она имеет поле return_to со значением главной страницы сайта, которую следует перенаправить на ahrefs.com/dashboard/metrics/ (страница с я хочу разобрать данные). Но поведение моей программы другое. После PostForm я получил 301 код состояния:

resp, _ = client.PostForm(
        "https://ahrefs.com/user/login/",
        url.Values{
            "email": {"djviman@gmail.com"},
            "password": {"Aau4bqRxfc4ZEvu"},
            "_token": {token},
            "return_to": {"https://ahrefs.com/"},
        })
    log.Println(resp.Status)
    resp.Body.Close()

Затем я отправляю запрос GET ahrefs.com/dashboard/metrics/ но он перенаправляет меня на домашнюю страницу, как будто я не вошел в систему:

resp, _ = client.Get("https://ahrefs.com/")
    log.Println(resp.Status)
    resp.Body.Close()

Вопросы: что я делаю не так? И горячо, чтобы успешно зайти на этот сайт?

0 ответов

Другие вопросы по тегам