有时候需要一个域名,但是现在的域名资源越来越少了,这时可以调用万网域名查询API接口通过爬虫实现哪些域名可用。
域名查询
接口地址:http://panda.www.net.cn/cgi-bin/check.cgi
接口采用HTTP,POST,GET协议
参数名称:area_domain 值为标准域名,例:nmtui.com
调用举例 CURL方法
[clsn@clsn ~]$ curl http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=clsn.top
返回XML:
<?xml version="1.0" encoding="gb2312"?>
<property>
<returncode>200</returncode>
<key>nmtui.com</key>
<original>210 : Domain name is available</original>
</property>
返回 XML 结果说明:
返回字段 | 说明 |
---|---|
<returncode>200 | 表示接口返回成功 |
<key>nmtui.com | 表示当前检查的域名 |
<original>210 | Domain name is available 表示域名可以注册 |
<original>211 | Domain name is not available 表示域名已经注册 |
<original>212 | Domain name is invalid 表示域名参数传输错误 |
<original>213 | Time out 查询超时 |
下面的代码实例,用于验证各个域名是否可以注册:
public class Test {
public static void main(String[] args) {
Test t = new Test();
t.checkDomain();
}
public Object checkDomain() {
String url = "http://panda.www.net.cn/cgi-bin/check.cgi";
String text = "abcdefghijklmnopqrstuvwxyz";
String suffix = ".cn";
String d = "mz";
int len = 26;
File provinceFile = new File("E:\\domain.txt");
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(provinceFile);
StringBuilder sb = new StringBuilder();
Map<String, String> param = new HashMap<String, String>();
for (int i = 0; i < 26; i++) {
for (int j = 0; j < 26; j++) {
for (int m = 0; m < len; m++) {
for (int n = 0; n < len; n++) {
sb.delete(0, sb.length());
sb.append(text.charAt(i));
sb.append(text.charAt(j));
sb.append(text.charAt(m));
sb.append(text.charAt(n));
sb.append(suffix);
String domain = sb.toString();
param.put("area_domain", domain);
String xml = HttpUtil.doPost(url, param);
System.out.println("=========domain==========" + domain);
if(xml != null && xml.length() > 0 && xml.indexOf("210") > 0) {
System.out.println("=========xml==========" + xml);
writeFile(domain, fileWriter);
}
try {
Thread.sleep(1200);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeFile(fileWriter);
}
return "spider crawl end.";
}
private void writeFile(String domain, FileWriter fileWriter) {
try {
fileWriter.write(domain);
} catch (Exception e) {
e.printStackTrace();
}
}
private void closeFile(FileWriter fileWriter) {
try {
if(fileWriter != null) {
fileWriter.flush();
fileWriter.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
HttpUtil 这里没有提供,留这大家自己实现。