我试图使用Zillow API。 实际上,它正在我的本地工作并返回我需要的所有数据但是当我尝试在我们的托管中发布它时,API返回"请求被阻止,检测到爬虫。"
这是在我的本地但不在我们的服务器中的示例代码。
echo @file_get_content("example.xml");
谢谢!
答案 0 :(得分:5)
我非常确定Zillow授予API密钥以限制任何人访问他们的数据,并监控正在提供的数据量。这是几乎所有公共API的标准做法。
编辑:删除了标题建议。 Zillow希望您将API密钥作为查询字符串参数传递。 URL看起来像这样。
http://www.zillow.com/webservice/GetDemographics.htm?zws-id
<ZWSID>&state=WA&city=Seattle&neighborhood=Ballard
在php中,您可以尝试cURL
或file_get_contents
:一个cURL示例:
$apiKey = qadsf78asdfjkasdjf-yourAPIKey
$url = 'http://www.zillow.com/webservice/GetDemographics.htm?zws-id=' . $apiKey .
'&state=TX&city=Austin';
$ch = curl_init($url);
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec( $ch );
print_r($response);
curl_close( $ch );
您可以在cURL中传递很多选项,请查看此页面以进一步阅读。 http://php.net/manual/en/book.curl.php
答案 1 :(得分:0)
如果您使用的是vpn,Zillow似乎会返回该抓取工具消息。