@GamiD Вот функция, там всего один простой запрос, думаю разберешься
func getSolution(key, token string) (string, error) { url := fmt.Sprintf("https://www.google.com/recaptcha/api2/reload?k=%s", key) payload := fmt.Sprintf("reason=q&c=%s&size=invisible", token) resp, err := http.Post(url, "application/x-www-form-urlencoded", strings.NewReader(payload)) if err != nil { return "", err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { return "", fmt.Errorf("Failed to retrieve solution: %v", resp.Status) } // Read the response body body, err := io.ReadAll(resp.Body) if err != nil { return "", err } re := regexp.MustCompile(`"rresp","(.*?)",`) match := re.FindStringSubmatch(string(body)) if len(match) < 2 { return "", fmt.Errorf("Failed to extract 'rresp' value from the response body") } solution := match[1] return solution, nil }data-sitekey is empty при решении recaptcha
-
Встречаю подобную проблему уже на 3 сайте.
параметр data-sitekey= отсутствует в коде страницы
пример сайта https://app.fanzone.io/login (после ввода почты) -
@nistagm said in data-sitekey is empty при решении recaptcha:
Встречаю подобную проблему уже на 3 сайте.
параметр data-sitekey= отсутствует в коде страницы
пример сайта https://app.fanzone.io/login (после ввода почты)снифайте запросы в фаербаге хрома (вкладка network) при отправке решения рекапчи sitekey будет либо в данных либо в url
-
cache_get_status("*aptcha/api2/anchor?*")! _if(_result() == 200, function () { _cache_get_all("*aptcha/api2/anchor?*")! CACHE_LIST = JSON.parse(_result()) var siteKey = false; if (CACHE_LIST[0].url.indexOf("&k=") > -1) { siteKey = CACHE_LIST[0].url.split("&k=")[1]; if (siteKey.indexOf("&") > -1) { siteKey = siteKey.split("&")[0]; } } })!upd только кэш нужно разрешить и чистить перед переходом на целевую страницу иначе может не тот ключ взять, это если вы по разным сайтам ходите.