工业和信息化部-备案信息查询-信息爬取

备案信息查询页面-查询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
是否限制接入:否
注:此处未实现返回结果分页功能

猜你喜欢

转载自blog.csdn.net/caowenyi88/article/details/80859232
今日推荐