How can I login in Amazon with PHP cURL

試著忘記壹切 提交于 2019-12-10 20:56:10

问题


I need to login to Amazon page: https://sellercentral-japan.amazon.com/gp/sign-in/sign-in.html/ref=pt_login_lgin_login with PHP cURL (without Amazon Web Service).

Here is code how I tried for that:

const AMAZON_LOGIN_URL = "https://sellercentral-japan.amazon.com/gp/sign-in/sign-in.html/ref=pt_login_lgin_login";

$this->crawler = new crawler();        
// login with Amazon account
$parameters ='protocol=https&action=sign-in&email='.self::AMAZON_USER.'&password='.self::AMAZON_PWD;
$status = $this->crawler->logIn(self::AMAZON_LOGIN_URL, $parameters);

/* in crawler class */
//This is used for login.
function logIn($loginActionUrl, $parameters) {
    $strCookie = 'D:\public_html\project\cookie.txt';

    curl_setopt($this->curl, CURLOPT_URL, $loginActionUrl);
    curl_setopt($this->curl, CURLOPT_POST, 1);
    curl_setopt($this->curl, CURLOPT_POSTFIELDS, $parameters);

    curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($this->curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($this->curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($this->curl, CURLOPT_HEADER, 0);

    curl_setopt($this->curl, CURLOPT_COOKIEJAR, $strCookie);
    curl_setopt($this->curl, CURLOPT_COOKIEFILE, $strCookie);

    $content = curl_exec($this->curl);
    return $content;
}

As a response, I get login page with error message: "Your login session expired. Please sign in again." And this message is also displayed:

"Not Found

The requested URL /aan/2009-09-09/static/amazon/iframeproxy-12.html was not found on this server."

I have tried most of the solutions found on web. This solution was hopeful but still not working: PHP Curl - Cookies problem I have changed required login page URL and made few other changes but it give this error:

"There was an error trying to perform this operation. Please try again in 15 minutes." even after 15 min, it gives the same error.

If anybody can help, it would be help.

Thanks.


回答1:


Just for marking as answer:
you have to 2 things:

  1. Request login page from server using get method
  2. Send login data using new session and with hidden inputs

to see the script : https://stackoverflow.com/a/7532730/889678




回答2:


Use their official Curl API... See php sample here http://login.amazon.com/website



来源:https://stackoverflow.com/questions/11061543/how-can-i-login-in-amazon-with-php-curl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!