使用PHP的CURL脚本获取ASPX页面内容

5

我已经尝试了一整天来将一个XML源码带入我的应用程序中。通常不是问题,我还有另外两个使用simpleXml方法带入应用程序的源,以下是我附上的代码。

我的问题是这个页面是一个aspx页面,似乎有某种重定向或者可能只是使用了一个无参数的aspx框架。

这是我用于其他两个数据提取的脚本,运行良好。

$grb_feed_url = 'http://www.grb.uk.com/rss.php';
$grb_jobs = simplexml_load_file($grb_feed_url, 'SimpleXMLElement', LIBXML_NOCDATA);

这很好,但是当我尝试对http://www.milkround.com/rss.aspx这个网址进行操作时,它返回了空值。

然后我尝试了一个cURL脚本,这个脚本在godaddy的例子中运行良好,但在Milkround网址中却返回空值。另外奇怪的是,如果我删除CURLOPT_FOLLOWLOCATION行或将其设置为0,则会返回“对象已移动到此处”。

function get_data($url)
{
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch,CURLOPT_URL,$url);
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}

$returned_content = get_data('http://www.milkround.com/rss');
print_r($returned_content);

/* example of a url that works using this script */
/* $returned_content = get_data('http://www.godaddy.com/hosting/website-builder.aspx'); */
1个回答

4

您需要在cURL请求中包含User-Agent头,否则该网站将产生501错误:

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/4");

完全正确,我可以通过这个添加获取数据。传奇! - user1271418

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接