水滴信用 API

文章目录 (?) [+]

        公司项目开发遇到一个需求,需要根据用户填写的企业名称获取公开的企业信息实现自动填写,搜索了一圈没有找到合适的 API ,无奈便打起了 水滴信用 的主意 ...

    水滴信用

    <?php
    function GetHtmlSourceCode($url) {
        if (!preg_match('/http:\/\/.*/i', $url)) return false;
        $ch = curl_init();
        $timeout = 10;
        if (!curl_setopt ($ch, CURLOPT_URL, $url)) return false;
        if (!curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1)) return false;
        if (!curl_setopt ($ch, CURLOPT_HEADER, true)) return false;
        if (!curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout)) return false;
        $html = curl_exec($ch);
        $info = curl_getinfo($ch);
        $header = substr($html, 0, $info['header_size']);
        $html = substr($html, $info['header_size']);
        if (strpos($header, 'gzip')) {
            $html = gzdecode($html);
        }
        if (!strpos($header, 'utf-8')) {
            $html = mb_convert_encoding($html, 'utf-8', 'utf-8,gb2312,gbk,big5');
        }
    
        return $html;
    }
    
    function GetUrlByKeyword($html, $keyword) {
        $pattern = "/<a[^>]*companyname=\"{$keyword}\"[^>]*>/isU";
        preg_match($pattern, $html, $matches);
        $pattern = '/href="(.*)"/isU';
        preg_match($pattern, $matches[0], $matches);
    
        if (!is_null($matches[1])) {
            $url = 'http://shuidi.cn' . $matches[1];
            return $url;
        }
    
        return false;
    }
    
    function GetInfoBySourceCode($html) {
        $info = array();
        $list = array(
            '工商注册号' => 'registcode',
            '登记状态' => 'status',
            '法定代表人' => 'legal',
            '注册资本' => 'capital',
            '企业信用代码' => 'creditcode',
            '成立时间' => 'established',
            '登记机关' => 'authority',
            '核准日期' => 'approved',
            '营业期限' => 'period',
            '企业类型' => 'corptype',
            '所在省份' => 'province',
            '企业地址' => 'address',
            '经营范围' => 'scope',
        );
    
        foreach ($list as $key => $value) {
            //$pattern = "/{$key}<\/td>[\s\S]*<td>(.*)<\/td>/isU";
            $pattern = "/{$key}<\/td>[\s\S]*<td[^>]*>(.*)<\/td>/isU";
            preg_match($pattern, $html, $matches);
            if (is_null($matches[1])) {
                return false;
            } elseif ($key == '法定代表人') {
                preg_match('/<a[^>]*>(.*)<\/a>/isU', $matches[1], $matches);
            } elseif ($key == '经营范围') {
                preg_match('/<div[^>]*class="overflow"[^>]*>(.*)<\/div>/isU', $matches[1], $matches);
            }
    
            $info[$value] = $matches[1];
        }
    
        return $info;
    }
    
    function GetCorpInfo() {
        $data = array(
            'code' => 500,
            'msg' => 'Unknown Error'
        );
    
        if (isset($_POST['corp'])) {
            $keyword = $_POST['corp'];
            $url = 'http://shuidi.cn/pc-search?key='. $keyword;
            $html = GetHtmlSourceCode($url);
            if ($html) {
                $url = GetUrlByKeyword($html, $keyword);
                if ($url) {
                    $html = GetHtmlSourceCode($url);
                    if ($html) {
                        $info = GetInfoBySourceCode($html);
                        if ($info) {
                            $data = array(
                                'code' => 0,
                                'msg' => 'ok',
                                'info' => $info
                            );
                        } else {
                            $data = array(
                                'code' => 101,
                                'msg' => 'Some Info is Missing due to Webpage revision'
                            );
                        }
                    } else {
                        $data = array(
                            'code' => 102,
                            'msg' => 'Can not Open this URL'
                        );
                    }
                } else {
                    $data = array(
                        'code' => 103,
                        'msg' => 'Incorrect Company Name'
                    );
                }
            } else {
                $data = array(
                    'code' => 104,
                    'msg' => 'Can not Open this URL'
                );
            }
        }
    
        return $data;
    }

    水滴信用 API


    本文标题:水滴信用 API
    本文链接:https://lanseyujie.com/post/shuidi_credit_api.html
    版权声明:本文使用「署名-非商业性使用-相同方式共享」创作共享协议,转载或使用请遵守署名协议。
    点赞 0 分享 0