备案信息查询页面-查询url
www.miitbeian.gov.cn/icp/publish/query/icpMemoInfo_searchExecute.action
此处根据主办单位名称查询
查询参数如下图所示:
表单参数:
页面展示信息:
Java 程序模拟手动输入验证码的情况下,爬取数据:
import com.alibaba.fastjson.JSONObject;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.w3c.dom.Element;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class SpMerchantIcpTest {
public static void getSpMerchantIcp() throws IOException {
String proxyHost = "59.44.16.6";
int proxyPort = 80;
System.setProperty("https.proxySet", "true");
System.getProperties().put("https.proxyHost", proxyHost);
System.getProperties().put("https.proxyPort", proxyPort);
String codeUrl = "http://www.miitbeian.gov.cn/getVerifyCode?" + Math.floor(Math.random()*100);
Connection connect = Jsoup.connect(codeUrl);
connect.timeout(5 * 10000);
//发送请求
Connection.Response response = connect.ignoreContentType(true).execute().method(Connection.Method.GET);
//获取返回cookie所值
Map<String,String> cookies = response.cookies();
System.out.println("所有cookie值: \n" + cookies.toString());
byte[] img = response.bodyAsBytes();
System.out.println(img.length);
// 读取文件存储位置
String verifyCodeDirectory = "D:\\tmp\\valid_code";
String timestamp = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(new Date());
String verifyCodeFileName = timestamp + (int)(Math.random() * 1000) + ".jpg";
// 保存图片,文件名:时间戳+1000以内随机数
savaImage(img, verifyCodeDirectory, verifyCodeFileName);
Scanner scanner = new Scanner(System.in);
System.out.println("请输入验证码:");
String verifyCode = scanner.nextLine();
System.out.println("输入的验证码:" + verifyCode);
String resultUrl = "http://www.miitbeian.gov.cn/icp/publish/query/icpMemoInfo_searchExecute.action";
String merchantName = "上海中谷小金金融信息服务有限公司";
Connection retConn = Jsoup.connect(resultUrl).cookies(cookies);
retConn.header("Accept", "text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8");
retConn.header("Accept-Encoding", "gzip, deflate");
retConn.header("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
retConn.header("Content-Type", "application/x-www-form-urlencoded");
retConn.header("Host", "www.miitbeian.gov.cn");
retConn.header("Referer", "http://www.miitbeian.gov.cn/ic…ry/icpMemoInfo_showPage.action");
retConn.header("Upgrade-Insecure-Requests", "1");
retConn.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/60.0");
retConn.header("Cookie", cookies.toString());
retConn.data("certType","-1");
retConn.data("condition","0");
retConn.data("mainLicense","");
retConn.data("mainUnitCertNo","");
retConn.data("mainUnitNature","-1");
retConn.data("siteDomain","");
retConn.data("siteIp","");
retConn.data("siteName", "");
retConn.data("siteUrl","");
retConn.data("unitName",merchantName);
retConn.data("verifyCode",verifyCode);
retConn.postDataCharset("GBK");
Document retDoc = retConn.post();
retListParese(retDoc.html());
}
public static void savaImage(byte[] img, String filePath, String fileName) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
File dir = new File(filePath);
try {
// 判断文件目录是否存在
if (!dir.exists() && dir.isDirectory()) {
dir.mkdir();
}
file = new File(filePath + "\\" + fileName);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(img);
System.out.println("验证码已经下载到:"+filePath);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void retListParese(String html){
Document document = Jsoup.parse(html);
// 根据返回页面判断验证码是否输入正确
// 验证码输入正确
if(document.getElementById("detailForm") != null){
System.out.println("******验证码输入正确!");
}else{ // 验证码输入错误
System.out.println("******验证码输入错误!");
return ;
}
Elements trElments = document.getElementsByTag("table").get(2).getElementsByTag("tbody").get(0).getElementsByTag("tr");
int itemNum = trElments.size() - 2;
System.out.println("记录个数:" + document.getElementsByTag("table").get(3).getElementsByTag("span").get(0).text().trim());
// 去掉标题和最后一栏
for(int ind = 1; ind <= itemNum; ind ++){
if(trElments.get(ind).getElementsByTag("td").size() >= 8){
System.out.println("主办单位名称:" + trElments.get(ind).getElementsByTag("td").get(1).text().trim());
System.out.println("主办单位性质:" + trElments.get(ind).getElementsByTag("td").get(2).text().trim());
System.out.println("网站备案/许可证号:" + trElments.get(ind).getElementsByTag("td").get(3).text().trim());
System.out.println("网站名称:" + trElments.get(ind).getElementsByTag("td").get(4).text().trim());
System.out.println("网站首页网址:" + trElments.get(ind).getElementsByTag("td").get(5).text().trim());
System.out.println("审核时间:" + trElments.get(ind).getElementsByTag("td").get(6).text().trim());
System.out.println("是否限制接入:" + trElments.get(ind).getElementsByTag("td").get(7).text().trim());
}else{
// 返回结果为空
System.out.println(trElments.get(ind).getElementsByTag("td").get(0).text().trim());
}
}
}
public static void main(String[] args) throws UnsupportedEncodingException {
try {
getSpMerchantIcp();
} catch (IOException e) {
e.printStackTrace();
}
}
}
控制台输入信息展示:
所有cookie值:
{JSESSIONID=M-tKvpEvzpEZP7tKf4nryWB6w1PSmIjwdQWh5q_jvjE0nvzjuKYa!2144121308, __jsluid=2d1961056db2033f82d85bc2d72c5ff6}
3253
验证码已经下载到:D:\tmp\valid_code
请输入验证码:
ljn366
输入的验证码:ljn366
******验证码输入正确!
记录个数:11
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-1
网站名称:中谷小金
网站首页网址:www.chinavalleyfinance.com
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-10
网站名称:小金宝
网站首页网址:www.xiaojinbao.cn
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-11
网站名称:中谷小金
网站首页网址:www.cvallis.com
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-2
网站名称:卡小二
网站首页网址:www.kaxiaoer.cn
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-3
网站名称:小金理财
网站首页网址:www.xiaojinlicai.com
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-4
网站名称:闪电贷
网站首页网址:www.shandiandai.cn
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-5
网站名称:卡小二
网站首页网址:www.kaxiaoer.com
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-6
网站名称:闪电借
网站首页网址:www.shandianjie.com
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-7
网站名称:夸氪金融
网站首页网址:www.kuark.com
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-8
网站名称:卡小包
网站首页网址:www.kaxiaobao.cn
审核时间:2017-02-17
是否限制接入:否
主办单位名称:上海中谷小金金融信息服务有限公司
主办单位性质:企业
网站备案/许可证号:沪ICP备12019140号-9
网站名称:闪电还
网站首页网址:www.shandianhuan.com
审核时间:2017-02-17
是否限制接入:否
注:此处未实现返回结果分页功能