Как войти на Amazon с помощью Guzzle PHP

Я пытаюсь войти на Amazon с помощью Guzzle, но мне не везет. Вот мой код:

$client = new \GuzzleHttp\Client(['cookies' => true]);

$response = $client->request('POST', 'https://www.amazon.com/gp/sign-in.html', [
    'form_params' => [
        'ap_email' => "email@gmail.com",
        'ap_password' => "12345678"
    ]
]);

Когда я получу ответ $response->getBody()->getContents() при успешном входе в систему возвращается страница входа, а не перенаправленная страница.

1 ответ

В вашем случае лучше использовать веб-скребок, например, Goutte. Он эмулирует пользователя с помощью браузера, поэтому вам не нужно беспокоиться о многих вещах (таких как защита CSRF и другие скрытые поля).

Вы можете использовать его с Guzzle в качестве драйвера, но некоторые сайты могут требовать JavaScript (я не уверен насчет Amazon). Тогда вам нужно перейти в реальный браузер или PhantomJS (разновидность безголового Chrome).

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