ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してWebサイトのインベントリデータを取得したい

PHPを使用してWebサイトのインベントリデータを取得したい

WBOY
WBOYオリジナル
2016-06-23 13:57:361212ブラウズ

このウェブサイトの在庫残数を取得したい
http://www.beibei.com/detail/105272.html
fopen()を使用してソースコードを読み込むと、表示される在庫数が0になっているので確認してくださいHTTP を偽装する必要があるとの情報がありますが、その方法がわかりません。オンラインで専門家を待ちます~~~


ディスカッションに返信 (解決策)

file_get_contents();ソース コードを取得して、通常のフィルタリングを使用します。

モデレーター、この方法を使用して取得されたインベントリは空です...

既解出:

<?php// 获取页面内容$content = file_get_contents('http://www.beibei.com/detail/105272.html');// 获取hxcsrfpreg_match('/g.__t__ = \"(.*)\";/U', $content, $matches);$hxcsrf = $matches[1];// 获取idpreg_match('/pageData.encryptId = \'(.*)\';/U', $content, $matches);$id = $matches[1];// post 到 api 获取sku$skuapi = 'http://www.beibei.com/item/detail/get_sku.html';$postdata  =  http_build_query (    array(         'hxcsrf' => $hxcsrf,         'id' => $id     ));$opts  = array( 'http'  =>    array(         'method'   =>  'POST' ,         'header'   =>  'Content-type: application/x-www-form-urlencoded' ,         'content'  =>  $postdata     ));$context = stream_context_create($opts);$sku = file_get_contents($skuapi, false, $context);$result = json_decode($sku, true);echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';echo '<pre class="brush:php;toolbar:false">';print_r($result);echo '
';?>

配列
(
[成功] => 1
[データ] => 配列
( [sku_id_map] => 配列
(
[3] => 配列
(
[0] => 15
[1] => 16
[2] => 19
[3] => 20
[4] => 22 [5] => 458
[ 6] => 459
[7] => 468 )
)

[sku_kv_map] => 配列
(
[k3] => 颜色
[v15] => 大号B红
[v16] => 大号B黑
[v19] => 大号B绿 [v20] => 大号B粉[v22] => 小号绿色 [v458] =>号黑色
[v459] => 小号粉色
[v468] => 小号红色
)
[sku_stock_map] => 配列
(
[v15] => 配列
                        (
[id] =&gt; 61788 配列

[id] =&gt; 61789 array

[id] =&gt; 61790
[stock] =&gt; 100
[rice] =&gt; 9900
[ovirion_price] =&gt; 21800
) 配列
(
[id] => 61791
[在庫] =&g t; ​​100
[価格] => 9,900
[origin_price] => 21,800
                        )

[v22] => 配列

[id] =&gt; 61792 配列

[id] =&gt; 61793 array

[id] =&gt; 61794
[stock] =&gt; 100
[rice] =&gt; 8900
[origin_price] =&gt; 19800

[v468] =&gt; 配列
(
[id] => 61795
[在庫] =&g 100
                            [価格] => 8900
[origin_price] => 19800
)
[v0] => 800
)

)

)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。