国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

使用java采集京東商城行政區劃數據示例

2019-11-26 15:36:37
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

package com.test.html;

import com.alibaba.fastjson.JSON;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class JD_Address
{
    private static int timeout = 300000;
    private static int count = 0;

    public static void main(String[] args) throws IOException, InterruptedException
    {
        String province_url = "http://trade.jd.com/dynamic/consignee/getProvinces.action";
        String city_url = "http://trade.jd.com/dynamic/consignee/getCitys.action?consigneeParam.provinceId=";
        String county_url = "http://trade.jd.com/dynamic/consignee/getCountys.action?consigneeParam.cityId=";
        String town_url = "http://trade.jd.com/dynamic/consignee/getTowns.action?consigneeParam.countyId=";

        //getList(town_url + "4139");
        List<Address> provinces = getList(province_url);
        for (Address province : provinces)
        {
            List<Address> citys = getList(city_url + province.getId());
            province.setChildren(citys);

            for (Address city : citys)
            {
                List<Address> countys = getList(county_url + city.getId());
                city.setChildren(countys);
                for (Address county : countys)
                {
                    List<Address> towns = getList(town_url + county.getId());
                    county.setChildren(towns);
                }
            }
        }
        System.out.println("=======");
        FileUtils.writeStringToFile(new File("保存位置/address2.js"), "var ds=" + JSON.toJSONString(provinces));
    }

    private static List<Address> getList(String url) throws IOException, InterruptedException
    {
        List<Address> list = new ArrayList<Address>();
        Document doc = Jsoup.parse(new URL(url), timeout);
        Elements elements = doc.select("option[value~=//d+]");
        for (Element element : elements)
        {
            Address address = new Address();
            address.setName(element.text().replace("*", StringUtils.EMPTY));
            address.setId(element.attr("value"));
            list.add(address);

            //System.out.println(address.getName());
        }
        ++count;
        if (count % 100 == 0)
        {
            System.out.println(count);
        }
        if (count % 500 == 0)
        {
            Thread.sleep(5000);
        }
        return list;
    }
}

class Address
{
    private String name;
    private String id;
    private List<Address> children;

    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public List<Address> getChildren()
    {
        return children;
    }
    public void setChildren(List<Address> children)
    {
        this.children = children;
    }
    public String getId()
    {
        return id;
    }
    public void setId(String id)
    {
        this.id = id;
    }
}

JavaScript]代碼

復制代碼 代碼如下:

[
        {"children": [
            {"children": [
                {"id": "2799", "name": "三環以內"},
                {"id": "2819", "name": "三環到四環之間"},
                {"id": "2839", "name": "四環到五環之間"},
                {"id": "2840", "name": "五環到六環之間"},
                {"id": "4137", "name": "管莊"},
                {"id": "4139", "name": "北苑"},
                {"id": "4211", "name": "定福莊"}
            ], "id": "72", "name": "朝陽區"},
            {"children": [
                {"id": "2848", "name": "三環以內"},
                {"id": "2849", "name": "三環到四環之間"},
                {"id": "2850", "name": "四環到五環之間"},
                {"id": "2851", "name": "五環到六環之間"},
                {"id": "2852", "name": "六環以外"},
                {"id": "4134", "name": "西三旗"},
                {"id": "4209", "name": "西二旗"}
            ], "id": "2800", "name": "海淀區"},
            {"children": [
                {"id": "2827", "name": "內環到二環里"},
                {"id": "2853", "name": "二環到三環"}
            ], "id": "2801", "name": "西城區"},
            {"children": [
                {"id": "2821", "name": "內環到三環里"}
            ], "id": "2802", "name": "東城區"},
            {"children": [
                {"id": "2829", "name": "一環到二環"},
                {"id": "2842", "name": "二環到三環"}
            ], "id": "2803", "name": "崇文區"},
            {"children": [
                {"id": "2828", "name": "內環到三環里"}
            ], "id": "2804", "name": "宣武區"},
            {"children": [
                {"id": "2832", "name": "四環到五環之間"},
                {"id": "2854", "name": "二環到三環"},
                {"id": "2855", "name": "三環到四環之間"},
                {"id": "34544", "name": "五環到六環之間"},
                {"id": "34545", "name": "六環之外"}
            ], "id": "2805", "name": "豐臺區"},
            {"children": [
                {"id": "2831", "name": "四環到五環內"},
                {"id": "4187", "name": "石景山城區"},
                {"id": "4188", "name": "八大處科技園區"}
            ], "id": "2806", "name": "石景山區"},
            {"children": [
                {"id": "6491", "name": "城區以內"},
                {"id": "2843", "name": "郊區"}
            ], "id": "2807", "name": "門頭溝"},
            {"children": [
                {"id": "6492", "name": "城區以內"},
                {"id": "2844", "name": "郊區"}
            ], "id": "2808", "name": "房山區"},
            {"children": [
                {"id": "4175", "name": "五環到六環之間"},
                {"id": "37643", "name": "六環以外(于家務鄉)"},
                {"id": "51150", "name": "六環以外(張家灣鎮、臺湖鎮、 主站蜘蛛池模板: 东乌| 彰化县| 明光市| 合水县| 姜堰市| 监利县| 万源市| 璧山县| 淮安市| 浙江省| 龙陵县| 宁安市| 定安县| 宿迁市| 靖宇县| 桦甸市| 凤台县| 于都县| 通榆县| 固原市| 敦煌市| 青岛市| 正镶白旗| 房山区| 增城市| 新乐市| 获嘉县| 东港市| 贵州省| 墨玉县| 小金县| 开鲁县| 理塘县| 天全县| 东兰县| 久治县| 宜州市| 瑞丽市| 晋中市| 阳泉市| 屏山县|