zhangjinkun@topnet.net.cn 9 лет назад
Родитель
Сommit
da743a0213
1 измененных файлов с 55 добавлено и 24 удалено
  1. 55 24
      spider2/src/client/demo/main.go

+ 55 - 24
spider2/src/client/demo/main.go

@@ -5,6 +5,7 @@ import (
 	"encoding/json"
 	"fmt"
 	"io/ioutil"
+	"log"
 	"net/http"
 )
 
@@ -24,20 +25,12 @@ func main() {
 	headMap["Url"] = urlPrefix + "/QuerySummary?AreaCode=" + headMap["AreaCode"] + "&Page=1&Limit=50&Q=郑州赛驰计算机"
 	headMap["Cookie"] = "352284048787547"
 	headMap["User-Agent"] = "Mozilla/5.0 (Android;4.0.1;MANUFACTURER;Pro5);Version/ErrorVersion;ISN_GSXT"
-	resp, err := SetHeader(headMap)
-	if err != nil {
-		fmt.Println(err.Error())
-		return
-	}
-	defer resp.Body.Close()
-	body, err := ioutil.ReadAll(resp.Body)
-	if err != nil {
-		return
-	}
-	result := make(map[string]interface{})
-	json.Unmarshal(body, &result)
-	//fmt.Println(result["RESULT"])
-	infolist := result["RESULT"].([]interface{})
+	body := SetHeader(headMap)
+
+	result1 := make(map[string]interface{})
+	json.Unmarshal(body, &result1)
+	//fmt.Println(result1["RESULT"])
+	infolist := result1["RESULT"].([]interface{})
 	var ID, REGNO string
 	for _, v := range infolist {
 		ID = fmt.Sprint((v.(map[string]interface{}))["ID"])
@@ -46,24 +39,62 @@ func main() {
 
 	//下载工商公示信息
 	headMap["Url"] = urlPrefix + "/QueryGSInfo?AreaCode=" + headMap["AreaCode"] + "&EntId=" + ID + "&EntNo=" + REGNO + "&Info=All"
-	resp, _ = SetHeader(headMap)
-	defer resp.Body.Close()
-	body, _ = ioutil.ReadAll(resp.Body)
-	fmt.Println(string(body))
+	body = SetHeader(headMap)
+
+	fmt.Println("工商公示", string(body))
+	tmp1 := make(map[string]interface{})
+	json.Unmarshal(body, &tmp1)
+	baseInfo := tmp1["RESULT"].(map[string]interface{})
+	REGINFO := baseInfo["REGINFO"].(map[string]interface{})
+	LEGINFO := REGINFO["LEGINFO"].([]interface{})
+	fmt.Println("股东列表", LEGINFO)
+	//股东详情
+	for k, v := range LEGINFO {
+		gd := v.(map[string]interface{})
+		headMap["Url"] = urlPrefix + "/QueryGSDetail?Id=" + fmt.Sprint(gd["ID"]) + "&AreaCode=" + headMap["AreaCode"] + "&EntId=" + ID + "&EntNo=" + REGNO + "&Item=LegDetail"
+		body = SetHeader(headMap)
+		fmt.Println(k, string(body))
+	}
 
 	//下载企业公示信息
 	headMap["Url"] = urlPrefix + "/QueryQY?AreaCode=" + headMap["AreaCode"] + "&EntId=" + ID + "&EntNo=" + REGNO + "&Info=All"
-	resp, _ = SetHeader(headMap)
-	defer resp.Body.Close()
-	body, _ = ioutil.ReadAll(resp.Body)
-	fmt.Println(string(body))
+	body = SetHeader(headMap)
+
+	//企业年报信息
+	result2 := make(map[string]interface{})
+	json.Unmarshal(body, &result2)
+	tmp2 := result2["RESULT"].(map[string]interface{})
+	nblist := tmp2["REPORTINFO"].([]interface{})
+	nb := make(map[string]interface{})
+	for _, v := range nblist {
+		nb = v.(map[string]interface{})
+		if nb != nil {
+			break
+		}
+	}
+	//fmt.Println(nb)
+	nbId := fmt.Sprint(nb["ID"])
+	headMap["Url"] = urlPrefix + "/QueryQYReport?Id=" + nbId + "&AreaCode=" + headMap["AreaCode"] + "&EntId=" + ID + "&EntNo=" + REGNO + "&Info=All"
+	body = SetHeader(headMap)
+	fmt.Println("年报", string(body))
 }
-func SetHeader(headMap map[string]string) (resp *http.Response, err error) {
+func SetHeader(headMap map[string]string) []byte {
 	req, _ := http.NewRequest("GET", headMap["Url"], nil)
 	//req, _ := http.NewRequest("GET", "https://120.52.121.75:8443/QueryAutoName?AreaCode=410000&Q=计算机&Size=5", nil)
 	req.Header.Add("User-Agent", headMap["User-Agent"])
 	req.Header.Add("Cookie", headMap["Cookie"])
 	req.Header.Add("Host", "120.52.121.75:8443")
 	req.Header.Add("Connection", "Keep-Alive")
-	return client.Do(req)
+	resp, err := client.Do(req)
+	if err != nil {
+		log.Println(err.Error())
+		return nil
+	}
+	defer resp.Body.Close()
+	body, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		log.Println(err.Error())
+		return nil
+	}
+	return body
 }