0

PHPスクリプトとcURLを使用して、Webサイトhttp://www.discogs.comにログインしようとしています。

https://www.discogs.com/sell/mywants?ev=wsimからデータを取得する必要があります。これは、want-list にアイテムが追加されたオファーのリストです。私が見つけたものから、このリストは API では利用できません。

標準の cURL リクエストを使用したログインに問題があります。これが私のコードです:

$username = 'myuser';
$password = 'mypassword';
$loginUrl = 'https://www.discogs.com/login';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.urlencode($username).'&password='.urlencode($password));
curl_setopt($ch, CURLOPT_COOKIEJAR, 'c:\cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'c:\tmp.txt'); 
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36');
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);

if (curl_error($ch)) {
    echo curl_error($ch);
    return;
} else {
    echo "OK";
}

curl_setopt($ch, CURLOPT_URL, 'https://www.discogs.com/sell/mywants?ev=wsim');
$content = curl_exec($ch);

echo $content;

curl_close($ch);

その結果、オファーがリストされているページではなく、ログインページが表示されます。

私が間違っていることを教えていただけますか?

4

1 に答える 1

1

私がテストしたように、ログイン ページには別のフィールドを投稿する必要があります。これはAction.Login、ログイン リクエストを有効にするためです。

curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.urlencode($username).'&password='.urlencode($password).'&Action.Login=');

お役に立てれば。

于 2016-09-15T00:17:06.553 に答える