PHP curl post并返回第二页信息

时间:2012-06-12 14:25:19

标签: php post curl loading

我认为不能做到这一点,但是对于任何挑战的人来说都是这样......

我创建了一个PHP curl脚本,它将变量POST到页面并返回源代码。

现在这里很棘手......它发布的信息页面只处理数据并显示加载屏幕,一旦处理完数据,它就会进入屏幕显示结果。这是我想要回归的第三页。有什么想法吗?

当前脚本:

extract($_POST);

//set POST variables
$url = 'http://check.domain.co.uk/loading.php';
$fields = array(
        'field1'=>urlencode($field1),
        'field1'=>urlencode($field2),
        'field1'=>urlencode($field2)
    );

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

以下是第一个和第二个网址的示例(不是真实的):

http://check.domain.co.uk/loading.php

http://check.domain.co.uk/instantaudit.php

1 个答案:

答案 0 :(得分:0)

嗯,过去(在谷歌发布公共API之前),开发人员通常会执行此类技巧来登录&从Google Analytics或Adsense中检索信息。

你可以从旧的PHP Adsense class中获取灵感(看看他们如何重复使用卷曲)。

基本上,解决方案非常难看,并且当目标域更新其页面的html时可能会被破坏(因为您解析返回的html以获取链接):

  • 卷曲包含所有参数的第一页
  • 解析返回的内容以提取下一个网址(在preg_match课程中查看AdSense来电)
  • 卷曲已解析的网址以检索下一个数据
  • 等等,直到找到您想要的内容

我提醒你它将来不可能是一个可靠的解决方案因为终结依赖于可能在时间上发生变化的外部来源(并打破你的过程)。