0

*長い投稿で申し訳ありませんpost*いくつかのフォーム フィールドにPHP で cURL を使用して、結果を返そうとしpostています。

cURL スクリプト

 $ch = curl_init();
 $data = array('field_1_name' => 'field_value',
               'field_2_name' => 'field_value',
               'field_3_name' => 'field_value',
              ); 
 curl_setopt($ch, CURLOPT_URL,'http://url.com');  
 curl_setopt ($ch, CURLOPT_POST, 1);
 curl_setopt ($ch, CURLOPT_POSTFIELDS, $data);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $fp = fopen('data.php', 'w');
 curl_setopt($ch, CURLOPT_FILE, $fp);
 curl_exec ($ch);
 curl_close ($ch);
 fclose($fp);

知っておくべきこと

  1. フィールドはフィールドではなく、とフィールドtext-fieldsの組み合わせです。radiodropdown
  2. フォームには含まれていますJSが、firebug コンソールにはAJAX投稿が表示されません。代わりに、フォームはデータで動作しSESSIONSますHTTP-CACHE
  3. フォーム フィールドが選択されると、ページが表示されreload、次のドロップダウンの値が挿入されます。(ここでも、firebug はこれをAJAXリクエストとして表示していません。)

dropdownフォームのフィールドの例を次に示します。

<select name="field_name" onchange="document.getElementById('uploadForm').action.value='RELOAD';document.getElementById('uploadForm').reloadTrigger.value='trigSize';document.getElementById('uploadForm').submit();">
   <option value="option_1">option_1</option>
   <option value="option_2">option_2</option>
   <option value="option_3">option_3</option>
</select>

nextとそれぞれonChangeの でリロードされたページをトリガーするイベントに注意してください。dropdwonoptions

私が達成しようとしていること

dropdownフィールドには、さまざまなオプションが含まれています。フォームで選択された組み合わせに基づいて、最終ページのリロードにより、選択されたこれらのオプションに基づいた価格が返されます。選択した価格オプションをデータベースに保存する必要があります。

したがって、私のデータベースは次のようになります。

option_1   |   option_2   |   option_3   |   price   |
field_1    |   field_2    |   field_3    |    25     |

経験のある人が私をより良い方向に向ける可能性があるため、このすべての情報を含めています(つまり、toots/libraries/tutorials/etc.)cURLがこの仕事に適しているかどうかわかりません。と一緒に仕事をする方が好きPHPです。それで、あなたたちはどう思いますか?お時間とご提案をいただきありがとうございます。役立つ情報を歓迎し、感謝します。

-- 補足 -- 私は、情報のスクレイピングに成功しているスクリプトをRUBY使用して作成しましWATIR-WebDriverたが、動作が遅すぎます。各製品には平均で 5,000 の異なる組み合わせがあり、この方法では 1 分あたり約 10 しか返されませんでした。(不合格)

編集 1

明確にするために。このフォームは私のサーバー上になく、私が所有または運営しているものではありません。フォームから返されたデータをスクレイピングするつもりです。

4

1 に答える 1

0

HTML形式で価格を返す最終リロードの結果を取得したいようです。最終ページには、選択されたすべての値と価格が表示されます。フォームに渡した価格以外の値を取得する必要はありません。価格は正規表現で取得できます。これらの値はデータベースに簡単に保存できます。

これは可能な解決策だと思います!!!

于 2012-10-17T11:10:08.880 に答える