-2

我不认为这是可以做到的,但对于任何有挑战的人来说,试试吧……

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

现在这里有点棘手......它发布的信息页面仅处理数据并显示加载屏幕,一旦处理数据,它就会进入他们的屏幕以显示结果。这是我想返回的第三页。有任何想法吗?

当前脚本:

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);

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

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

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

4

1 回答 1

0

好吧,在过去(在 Google 发布公共 api 之前),开发人员通常会执行此类技巧来登录并从 Analytics 或 Adsense 检索信息。

您可以从旧的PHP Adsense 类中获取灵感(看看他们如何反复使用 curl)。

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

  • curl 包含所有参数的第一页
  • 解析返回的内容提取下一个url(检查类preg_match中的调用AdSense
  • curl 解析后的 url 以检索下一个数据
  • 依此类推,直到你达到你想要的内容

我提醒你,它在未来不可能是一个可靠的解决方案,因为最终性依赖于一个外部来源,它可能会随着时间的推移而改变(并破坏你的过程)。

于 2012-06-12T14:40:45.750 回答