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()
Вопросы: что я делаю не так? И горячо, чтобы успешно зайти на этот сайт?