我试图从一个名为zillow的网站获取API为我工作,但我对网络新东西是新手.他们试着在这里解释如何使用它,但它让我失去了所以我看了他们的论坛.有人在那里发布了一个"示例",但我无法看到他们的代码甚至调用API的位置.基本上我需要一个表格字段,它将是一个地址并发送该信息以获取数据,这里是从这些人的例子中获取的源代码,
Get Property < # >Zestimates from Zillow
你可以看到它只是一个简单的形式,自己发布了吗?但是当我点击它时,它会从API中提取数据并显示它,但我不知道如何.我很乐意为您提供任何帮助,谢谢!
基于http://www.zillow.com/howto/api/APIFAQ.htm#devkit,没有JavaScript API.由于这个(以及跨域限制),您必须使用服务器端语言.我将添加一个简单的Java示例.
编辑:好的,这里.它只需要街道地址和城市/州,并返回格式化的值.错误检查遗漏:
import java.text.NumberFormat;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import java.io.*;
import java.util.Currency;
public class Zillow
{
private static final DocumentBuilderFactory dbFac;
private static final DocumentBuilder docBuilder;
static
{
try
{
dbFac = DocumentBuilderFactory.newInstance();
docBuilder = dbFac.newDocumentBuilder();
}
catch(ParserConfigurationException e)
{
throw new RuntimeException(e);
}
}
private static final String DEEP_URL = "http://www.zillow.com/webservice/GetDeepSearchResults.htm";
private static final String ZESTIMATE_URL = "http://www.zillow.com/webservice/GetZestimate.htm";
private static final String ZWSID = ...;
private static final NumberFormat nf = NumberFormat.getCurrencyInstance();
// Returns Zestimate value for address.
public static String getValuation(String address, String cityStateZip) throws SAXException, IOException
{
Document deepDoc = docBuilder.parse(DEEP_URL +
"?zws-id=" + ZWSID +
"&address=" + address +
"&citystatezip=" + cityStateZip);
Element firstResult = (Element)deepDoc.getElementsByTagName("result").item(0);
String zpid = firstResult.getElementsByTagName("zpid").item(0).getTextContent();
Document valueDoc = docBuilder.parse(ZESTIMATE_URL +
"?zws-id=" + ZWSID +
"&zpid=" + zpid);
Element zestimate = (Element)valueDoc.getElementsByTagName("zestimate").item(0);
Element amount = (Element)zestimate.getElementsByTagName("amount").item(0);
String currency = amount.getAttribute("currency");
nf.setCurrency(Currency.getInstance(currency));
return nf.format(Double.parseDouble(amount.getTextContent()));
}
public static void main(String[] args) throws Throwable
{
String address = args[0];
String cityStateZip = args[1];
System.out.println(getValuation(address, cityStateZip));
}
}