使用子域抓取.net网站

时间:2013-06-05 16:37:33

标签: php web-crawler

我正在尝试使用php curl抓取.net网站。我想抓取的网站是

http://waltham.patriotproperties.com

我可以抓取该网站。

但是当我试图抓取内部网页时,如

http://waltham.patriotproperties.com/about.asp

或该子域内的任何其他页面,它给我一个错误如下

The page cannot be displayed because an internal server error has occurred.1

我正在使用的代码如下所示

$ch = curl_init();
$urlLogin   =   "http://www.waltham.patriotproperties.com";
curl_setopt($ch, CURLOPT_URL, $urlLogin);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

//curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 

$data = curl_exec($ch);
echo $data; 

代码适用于

http://waltham.patriotproperties.com/

但不适用于

http://waltham.patriotproperties.com/search.asp
http://waltham.patriotproperties.com/summary.asp

即此子域内的任何网址。  我在子域内使用url获得的错误是

HTTP/1.1 500 Internal Server Error
Content-Type: text/html
Server: Microsoft-IIS/7.5
Date: Wed, 05 Jun 2013 16:33:57 GMT
Content-Length: 75 

1 个答案:

答案 0 :(得分:1)

你刚开始:

$urlLogin   =   "http://www.waltham.patriotproperties.com";

但搜索页面的链接位于:

http://waltham.patriotproperties.com/search.asp

如果您浏览该网址,您会看到内容;如果您将www.添加到URL的开头,则可以正常工作。

编辑添加 - 如果他们拥有您可以使用的API,这会变得更容易。