0

*很抱歉,很长的帖子* 我在 PHP 中使用 cURL 来处理post一些表单字段,以便返回post需要一些帮助的结果,因为表单有点不寻常。

卷曲脚本

 $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但萤火虫控制台不显示AJAX帖子 - 而是表单与SESSIONS数据HTTP-CACHE一起使用。
  3. 选择表单字段后,页面似乎reload会插入并插入下一个下拉列表的值。(同样,萤火虫没有将其显示为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>

请注意onChange触发重新加载页面的事件,该页面使用 nextdropdwon及其各自的options.

我想要完成的事情

每个dropdown字段都包含各种选项。根据表单上选择的组合,最终页面重新加载会根据这些选择的选项返回一个价格。我需要将价格和选择的选项保存到我的数据库中。

所以我的数据库看起来像这样:

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

我将所有这些信息都包括在内,因为有经验的人可能会为我指明更好的方向(意思是:嘟嘟/图书馆/教程/等)我不确定是否cURL适合这份工作。我更喜欢与PHP. 那你们怎么看?感谢您的时间和建议。我欢迎并感谢所有有用的信息。

--旁注--我在RUBY使用WATIR-WebDriver中编写了一个脚本,该脚本成功地抓取了信息,但是工作速度太慢了。每个产品平均有 5,000 种不同的组合,而这种方法每分钟只返回 10 种左右。(失败)

编辑 1

只是为了澄清。此表格不在我的服务器上,也不归我所有或操作。我打算抓取表单返回的数据。

4

1 回答 1

0

您似乎希望获得最终重新加载的结果,该结果将以 HTML 形式返回价格。最后一页将包含所有选定的值和价格。现在,当您将它们传递给表单时,您不需要获取除价格之外的其他值。价格可以通过正则表达式获取。这些值可以很容易地保存在您的数据库中。

我认为这将是可能的解决方案!

于 2012-10-17T11:10:08.880 回答