Вход в Airbnb через CURL

#php #curl

#php #curl

Вопрос:

Я пытаюсь выполнить вызовы API для Airbnb, но для выполнения этих вызовов вы должны войти в систему, а поскольку общедоступного API нет, мне остается попытаться найти решение.

Сначала я пытаюсь войти через CURL, я пытаюсь использовать этот фрагмент кода, но мне не очень везет.

 $url = "https://www.airbnb.co.uk/login";
$postinfo = "email=".$username."amp;password=".$password;

$cookie_file_path = $path."/cookie.txt";

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
//for certain features, set the cookie the site has - this is optional
curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0");
curl_setopt($ch, CURLOPT_USERAGENT,
    "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['REQUEST_URI']);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postinfo);
curl_exec($ch);

curl_setopt($ch, CURLOPT_URL, $url);
$html_data = curl_exec($ch);
curl_close($ch);
echo $html_data;
  

Ответ, который я получаю, это:

 {
success: false,
redirect: ""
}
  

Где я ошибаюсь (я объявил переменные, имя пользователя и пароль, но, очевидно, не учел это).

Комментарии:

1. какой ответ вы получаете?

2. добавлен ответ сейчас

3. Попробуйте добавить еще несколько заголовков, чтобы притвориться, что вы настоящий браузер. Accept заголовок может быть полезен, поскольку он сообщает серверу, с каким типом ответа вы можете работать.

4. @BCLtd насколько я вижу, запрос на вход отправляется на https://www.airbnb.co.uk/authenticate , и сначала вам нужно перейти на страницу входа, чтобы получить токен аутентификации из authenticity_token введенных данных для использования в запросе страницы аутентификации

5. Итак, используйте CURL, чтобы получить значение из скрытого поля ‘authenticity_token’ на странице на airbnb.co.uk/login а затем опубликуйте пользователя / передайте дальше airbnb.co.uk/authenticate это правильно?

Ответ №1:

Вы не можете войти в Airbnb с помощью curl, потому что Airbnb использует Google captcha, которая не может быть разрешена. Вот почему он возвращается success: false .

Если вы хотите что-то сделать с их приложением, вам следует попробовать зайти сюда и подать заявку в качестве партнера, чтобы использовать их API.

Комментарии:

1. Я не вижу капчу при доступе airbnb.co.uk/login ?

2. Если я вхожу в браузер, он возвращает Google captcha