Jsoup爬取、java爬取中国行政区域

目录

 

1.网址

2.查询结果

3.java代码

3.1pom依赖

3.2实体类

3.3java代码


1.网址

国家统计局:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/

2020年12月中华人民共和国县以上行政区划代码:http://www.mca.gov.cn/article/sj/xzqh/2020/20201201.html

 

2.查询结果

备注(有时候因为网络原因,数据可能会丢失)

----省数量31
------------:北京市: 市数量为:1
--------------------------------:市辖区 : 区县数量为:16
------------:天津市: 市数量为:1
--------------------------------:市辖区 : 区县数量为:16
------------:河北省: 市数量为:11
--------------------------------:石家庄市 : 区县数量为:25
--------------------------------:唐山市 : 区县数量为:19
--------------------------------:秦皇岛市 : 区县数量为:10
--------------------------------:邯郸市 : 区县数量为:21
--------------------------------:邢台市 : 区县数量为:20
--------------------------------:保定市 : 区县数量为:27
--------------------------------:张家口市 : 区县数量为:20
--------------------------------:承德市 : 区县数量为:13
--------------------------------:沧州市 : 区县数量为:20
--------------------------------:廊坊市 : 区县数量为:12
--------------------------------:衡水市 : 区县数量为:14
------------:山西省: 市数量为:11
--------------------------------:太原市 : 区县数量为:12
--------------------------------:大同市 : 区县数量为:12
--------------------------------:阳泉市 : 区县数量为:6
--------------------------------:长治市 : 区县数量为:14
--------------------------------:晋城市 : 区县数量为:7
--------------------------------:朔州市 : 区县数量为:8
--------------------------------:晋中市 : 区县数量为:12
--------------------------------:运城市 : 区县数量为:14
--------------------------------:忻州市 : 区县数量为:16
--------------------------------:临汾市 : 区县数量为:18
--------------------------------:吕梁市 : 区县数量为:14
------------:内蒙古自治区: 市数量为:12
--------------------------------:呼和浩特市 : 区县数量为:11
--------------------------------:包头市 : 区县数量为:11
--------------------------------:乌海市 : 区县数量为:4
--------------------------------:赤峰市 : 区县数量为:13
--------------------------------:通辽市 : 区县数量为:10
--------------------------------:鄂尔多斯市 : 区县数量为:10
--------------------------------:呼伦贝尔市 : 区县数量为:15
--------------------------------:巴彦淖尔市 : 区县数量为:8
--------------------------------:乌兰察布市 : 区县数量为:12
--------------------------------:兴安盟 : 区县数量为:6
--------------------------------:锡林郭勒盟 : 区县数量为:13
--------------------------------:阿拉善盟 : 区县数量为:4
------------:辽宁省: 市数量为:14
--------------------------------:沈阳市 : 区县数量为:14
--------------------------------:大连市 : 区县数量为:11
--------------------------------:鞍山市 : 区县数量为:8
--------------------------------:抚顺市 : 区县数量为:8
--------------------------------:本溪市 : 区县数量为:7
--------------------------------:丹东市 : 区县数量为:7
--------------------------------:锦州市 : 区县数量为:8
--------------------------------:营口市 : 区县数量为:7
--------------------------------:阜新市 : 区县数量为:8
--------------------------------:辽阳市 : 区县数量为:8
--------------------------------:盘锦市 : 区县数量为:5
--------------------------------:铁岭市 : 区县数量为:8
--------------------------------:朝阳市 : 区县数量为:8
--------------------------------:葫芦岛市 : 区县数量为:7
------------:吉林省: 市数量为:9
--------------------------------:长春市 : 区县数量为:16
--------------------------------:吉林市 : 区县数量为:13
--------------------------------:四平市 : 区县数量为:6
--------------------------------:辽源市 : 区县数量为:5
--------------------------------:通化市 : 区县数量为:8
--------------------------------:白山市 : 区县数量为:7
--------------------------------:松原市 : 区县数量为:7
--------------------------------:白城市 : 区县数量为:7
--------------------------------:延边朝鲜族自治州 : 区县数量为:8
------------:黑龙江省: 市数量为:13
--------------------------------:哈尔滨市 : 区县数量为:19
--------------------------------:齐齐哈尔市 : 区县数量为:17
--------------------------------:鸡西市 : 区县数量为:10
--------------------------------:鹤岗市 : 区县数量为:9
--------------------------------:双鸭山市 : 区县数量为:9
--------------------------------:大庆市 : 区县数量为:11
--------------------------------:伊春市 : 区县数量为:11
--------------------------------:佳木斯市 : 区县数量为:11
--------------------------------:七台河市 : 区县数量为:5
--------------------------------:牡丹江市 : 区县数量为:12
--------------------------------:黑河市 : 区县数量为:7
--------------------------------:绥化市 : 区县数量为:11
--------------------------------:大兴安岭地区 : 区县数量为:7
------------:上海市: 市数量为:1
--------------------------------:市辖区 : 区县数量为:16
------------:江苏省: 市数量为:13
--------------------------------:南京市 : 区县数量为:12
--------------------------------:无锡市 : 区县数量为:8
--------------------------------:徐州市 : 区县数量为:12
--------------------------------:常州市 : 区县数量为:7
--------------------------------:苏州市 : 区县数量为:11
--------------------------------:南通市 : 区县数量为:10
--------------------------------:连云港市 : 区县数量为:9
--------------------------------:淮安市 : 区县数量为:9
--------------------------------:盐城市 : 区县数量为:11
--------------------------------:扬州市 : 区县数量为:8
--------------------------------:镇江市 : 区县数量为:8
--------------------------------:泰州市 : 区县数量为:8
--------------------------------:宿迁市 : 区县数量为:7
------------:浙江省: 市数量为:11
--------------------------------:杭州市 : 区县数量为:14
--------------------------------:宁波市 : 区县数量为:11
--------------------------------:温州市 : 区县数量为:14
--------------------------------:嘉兴市 : 区县数量为:8
--------------------------------:湖州市 : 区县数量为:6
--------------------------------:绍兴市 : 区县数量为:7
--------------------------------:金华市 : 区县数量为:10
--------------------------------:衢州市 : 区县数量为:7
--------------------------------:舟山市 : 区县数量为:5
--------------------------------:台州市 : 区县数量为:10
--------------------------------:丽水市 : 区县数量为:10
------------:安徽省: 市数量为:16
--------------------------------:合肥市 : 区县数量为:13
--------------------------------:芜湖市 : 区县数量为:11
--------------------------------:蚌埠市 : 区县数量为:10
--------------------------------:淮南市 : 区县数量为:8
--------------------------------:马鞍山市 : 区县数量为:7
--------------------------------:淮北市 : 区县数量为:5
--------------------------------:铜陵市 : 区县数量为:5
--------------------------------:安庆市 : 区县数量为:12
--------------------------------:黄山市 : 区县数量为:8
--------------------------------:滁州市 : 区县数量为:11
--------------------------------:阜阳市 : 区县数量为:11
--------------------------------:宿州市 : 区县数量为:8
--------------------------------:六安市 : 区县数量为:8
--------------------------------:亳州市 : 区县数量为:5
--------------------------------:池州市 : 区县数量为:5
--------------------------------:宣城市 : 区县数量为:9
------------:福建省: 市数量为:9
--------------------------------:福州市 : 区县数量为:14
--------------------------------:厦门市 : 区县数量为:7
--------------------------------:莆田市 : 区县数量为:6
--------------------------------:三明市 : 区县数量为:13
--------------------------------:泉州市 : 区县数量为:13
--------------------------------:漳州市 : 区县数量为:12
--------------------------------:南平市 : 区县数量为:11
--------------------------------:龙岩市 : 区县数量为:8
--------------------------------:宁德市 : 区县数量为:10
------------:江西省: 市数量为:11
--------------------------------:南昌市 : 区县数量为:10
--------------------------------:景德镇市 : 区县数量为:5
--------------------------------:萍乡市 : 区县数量为:6
--------------------------------:九江市 : 区县数量为:14
--------------------------------:新余市 : 区县数量为:3
--------------------------------:鹰潭市 : 区县数量为:4
--------------------------------:赣州市 : 区县数量为:19
--------------------------------:吉安市 : 区县数量为:14
--------------------------------:宜春市 : 区县数量为:11
--------------------------------:抚州市 : 区县数量为:12
--------------------------------:上饶市 : 区县数量为:13
------------:山东省: 市数量为:16
--------------------------------:济南市 : 区县数量为:14
--------------------------------:青岛市 : 区县数量为:12
--------------------------------:淄博市 : 区县数量为:9
--------------------------------:枣庄市 : 区县数量为:7
--------------------------------:东营市 : 区县数量为:8
--------------------------------:烟台市 : 区县数量为:14
--------------------------------:潍坊市 : 区县数量为:14
--------------------------------:济宁市 : 区县数量为:13
--------------------------------:泰安市 : 区县数量为:7
--------------------------------:威海市 : 区县数量为:8
--------------------------------:日照市 : 区县数量为:6
--------------------------------:临沂市 : 区县数量为:14
--------------------------------:德州市 : 区县数量为:14
--------------------------------:聊城市 : 区县数量为:9
--------------------------------:滨州市 : 区县数量为:8
--------------------------------:菏泽市 : 区县数量为:12
------------:河南省: 市数量为:18
--------------------------------:郑州市 : 区县数量为:16
--------------------------------:开封市 : 区县数量为:10
--------------------------------:洛阳市 : 区县数量为:17
--------------------------------:平顶山市 : 区县数量为:13
--------------------------------:安阳市 : 区县数量为:11
--------------------------------:鹤壁市 : 区县数量为:7
--------------------------------:新乡市 : 区县数量为:16
--------------------------------:焦作市 : 区县数量为:12
--------------------------------:濮阳市 : 区县数量为:9
--------------------------------:许昌市 : 区县数量为:8
--------------------------------:漯河市 : 区县数量为:7
--------------------------------:三门峡市 : 区县数量为:8
--------------------------------:南阳市 : 区县数量为:16
--------------------------------:商丘市 : 区县数量为:12
--------------------------------:信阳市 : 区县数量为:12
--------------------------------:周口市 : 区县数量为:12
--------------------------------:驻马店市 : 区县数量为:12
--------------------------------:省直辖县级行政区划 : 区县数量为:1
------------:湖北省: 市数量为:14
--------------------------------:武汉市 : 区县数量为:14
--------------------------------:黄石市 : 区县数量为:7
--------------------------------:十堰市 : 区县数量为:9
--------------------------------:宜昌市 : 区县数量为:14
--------------------------------:襄阳市 : 区县数量为:10
--------------------------------:鄂州市 : 区县数量为:4
--------------------------------:荆门市 : 区县数量为:6
--------------------------------:孝感市 : 区县数量为:8
--------------------------------:荆州市 : 区县数量为:10
--------------------------------:黄冈市 : 区县数量为:12
--------------------------------:咸宁市 : 区县数量为:7
--------------------------------:随州市 : 区县数量为:4
--------------------------------:恩施土家族苗族自治州 : 区县数量为:8
--------------------------------:省直辖县级行政区划 : 区县数量为:4
------------:湖南省: 市数量为:14
--------------------------------:长沙市 : 区县数量为:10
--------------------------------:株洲市 : 区县数量为:11
--------------------------------:湘潭市 : 区县数量为:9
--------------------------------:衡阳市 : 区县数量为:16
--------------------------------:邵阳市 : 区县数量为:13
--------------------------------:岳阳市 : 区县数量为:11
--------------------------------:常德市 : 区县数量为:11
--------------------------------:张家界市 : 区县数量为:5
--------------------------------:益阳市 : 区县数量为:9
--------------------------------:郴州市 : 区县数量为:12
--------------------------------:永州市 : 区县数量为:15
--------------------------------:怀化市 : 区县数量为:14
--------------------------------:娄底市 : 区县数量为:6
--------------------------------:湘西土家族苗族自治州 : 区县数量为:8
------------:广东省: 市数量为:21
--------------------------------:广州市 : 区县数量为:12
--------------------------------:韶关市 : 区县数量为:11
--------------------------------:深圳市 : 区县数量为:10
--------------------------------:珠海市 : 区县数量为:4
--------------------------------:汕头市 : 区县数量为:8
--------------------------------:佛山市 : 区县数量为:6
--------------------------------:江门市 : 区县数量为:8
--------------------------------:湛江市 : 区县数量为:10
--------------------------------:茂名市 : 区县数量为:6
--------------------------------:肇庆市 : 区县数量为:9
--------------------------------:惠州市 : 区县数量为:6
--------------------------------:梅州市 : 区县数量为:9
--------------------------------:汕尾市 : 区县数量为:5
--------------------------------:河源市 : 区县数量为:7
--------------------------------:阳江市 : 区县数量为:5
--------------------------------:清远市 : 区县数量为:9
--------------------------------:东莞市 : 区县数量为:0
--------------------------------:中山市 : 区县数量为:0
--------------------------------:潮州市 : 区县数量为:4
--------------------------------:揭阳市 : 区县数量为:6
--------------------------------:云浮市 : 区县数量为:6
------------:广西壮族自治区: 市数量为:14
--------------------------------:南宁市 : 区县数量为:13
--------------------------------:柳州市 : 区县数量为:11
--------------------------------:桂林市 : 区县数量为:18
--------------------------------:梧州市 : 区县数量为:8
--------------------------------:北海市 : 区县数量为:5
--------------------------------:防城港市 : 区县数量为:5
--------------------------------:钦州市 : 区县数量为:5
--------------------------------:贵港市 : 区县数量为:6
--------------------------------:玉林市 : 区县数量为:8
--------------------------------:百色市 : 区县数量为:13
--------------------------------:贺州市 : 区县数量为:6
--------------------------------:河池市 : 区县数量为:12
--------------------------------:来宾市 : 区县数量为:7
--------------------------------:崇左市 : 区县数量为:8
------------:海南省: 市数量为:5
--------------------------------:海口市 : 区县数量为:5
--------------------------------:三亚市 : 区县数量为:5
--------------------------------:三沙市 : 区县数量为:3
--------------------------------:儋州市 : 区县数量为:0
--------------------------------:省直辖县级行政区划 : 区县数量为:15
------------:重庆市: 市数量为:2
--------------------------------:市辖区 : 区县数量为:26
--------------------------------:县 : 区县数量为:12
------------:四川省: 市数量为:21
--------------------------------:成都市 : 区县数量为:21
--------------------------------:自贡市 : 区县数量为:7
--------------------------------:攀枝花市 : 区县数量为:6
--------------------------------:泸州市 : 区县数量为:8
--------------------------------:德阳市 : 区县数量为:7
--------------------------------:绵阳市 : 区县数量为:10
--------------------------------:广元市 : 区县数量为:8
--------------------------------:遂宁市 : 区县数量为:6
--------------------------------:内江市 : 区县数量为:7
--------------------------------:乐山市 : 区县数量为:12
--------------------------------:南充市 : 区县数量为:10
--------------------------------:眉山市 : 区县数量为:7
--------------------------------:宜宾市 : 区县数量为:11
--------------------------------:广安市 : 区县数量为:7
--------------------------------:达州市 : 区县数量为:9
--------------------------------:雅安市 : 区县数量为:9
--------------------------------:巴中市 : 区县数量为:7
--------------------------------:资阳市 : 区县数量为:4
--------------------------------:阿坝藏族羌族自治州 : 区县数量为:13
--------------------------------:甘孜藏族自治州 : 区县数量为:18
--------------------------------:凉山彝族自治州 : 区县数量为:17
------------:贵州省: 市数量为:9
--------------------------------:贵阳市 : 区县数量为:11
--------------------------------:六盘水市 : 区县数量为:4
--------------------------------:遵义市 : 区县数量为:15
--------------------------------:安顺市 : 区县数量为:7
--------------------------------:毕节市 : 区县数量为:9
--------------------------------:铜仁市 : 区县数量为:11
--------------------------------:黔西南布依族苗族自治州 : 区县数量为:8
--------------------------------:黔东南苗族侗族自治州 : 区县数量为:16
--------------------------------:黔南布依族苗族自治州 : 区县数量为:12
------------:云南省: 市数量为:16
--------------------------------:昆明市 : 区县数量为:15
--------------------------------:曲靖市 : 区县数量为:10
--------------------------------:玉溪市 : 区县数量为:10
--------------------------------:保山市 : 区县数量为:6
--------------------------------:昭通市 : 区县数量为:12
--------------------------------:丽江市 : 区县数量为:6
--------------------------------:普洱市 : 区县数量为:11
--------------------------------:临沧市 : 区县数量为:9
--------------------------------:楚雄彝族自治州 : 区县数量为:10
--------------------------------:红河哈尼族彝族自治州 : 区县数量为:13
--------------------------------:文山壮族苗族自治州 : 区县数量为:8
--------------------------------:西双版纳傣族自治州 : 区县数量为:3
--------------------------------:大理白族自治州 : 区县数量为:12
--------------------------------:德宏傣族景颇族自治州 : 区县数量为:5
--------------------------------:怒江傈僳族自治州 : 区县数量为:4
--------------------------------:迪庆藏族自治州 : 区县数量为:3
------------:西藏自治区: 市数量为:7
--------------------------------:拉萨市 : 区县数量为:13
--------------------------------:日喀则市 : 区县数量为:18
--------------------------------:昌都市 : 区县数量为:11
--------------------------------:林芝市 : 区县数量为:7
--------------------------------:山南市 : 区县数量为:13
--------------------------------:那曲市 : 区县数量为:11
--------------------------------:阿里地区 : 区县数量为:7
------------:陕西省: 市数量为:10
--------------------------------:西安市 : 区县数量为:14
--------------------------------:铜川市 : 区县数量为:5
--------------------------------:宝鸡市 : 区县数量为:13
--------------------------------:咸阳市 : 区县数量为:15
--------------------------------:渭南市 : 区县数量为:12
--------------------------------:延安市 : 区县数量为:14
--------------------------------:汉中市 : 区县数量为:12
--------------------------------:榆林市 : 区县数量为:13
--------------------------------:安康市 : 区县数量为:11
--------------------------------:商洛市 : 区县数量为:8
------------:甘肃省: 市数量为:14
--------------------------------:兰州市 : 区县数量为:10
--------------------------------:嘉峪关市 : 区县数量为:1
--------------------------------:金昌市 : 区县数量为:3
--------------------------------:白银市 : 区县数量为:6
--------------------------------:天水市 : 区县数量为:8
--------------------------------:武威市 : 区县数量为:5
--------------------------------:张掖市 : 区县数量为:7
--------------------------------:平凉市 : 区县数量为:8
--------------------------------:酒泉市 : 区县数量为:8
--------------------------------:庆阳市 : 区县数量为:9
--------------------------------:定西市 : 区县数量为:8
--------------------------------:陇南市 : 区县数量为:10
--------------------------------:临夏回族自治州 : 区县数量为:8
--------------------------------:甘南藏族自治州 : 区县数量为:8
------------:青海省: 市数量为:8
--------------------------------:西宁市 : 区县数量为:8
--------------------------------:海东市 : 区县数量为:6
--------------------------------:海北藏族自治州 : 区县数量为:4
--------------------------------:黄南藏族自治州 : 区县数量为:4
--------------------------------:海南藏族自治州 : 区县数量为:5
--------------------------------:果洛藏族自治州 : 区县数量为:6
--------------------------------:玉树藏族自治州 : 区县数量为:6
--------------------------------:海西蒙古族藏族自治州 : 区县数量为:7
------------:宁夏回族自治区: 市数量为:5
--------------------------------:银川市 : 区县数量为:7
--------------------------------:石嘴山市 : 区县数量为:4
--------------------------------:吴忠市 : 区县数量为:6
--------------------------------:固原市 : 区县数量为:6
--------------------------------:中卫市 : 区县数量为:4
------------:新疆维吾尔自治区: 市数量为:15
--------------------------------:乌鲁木齐市 : 区县数量为:9
--------------------------------:克拉玛依市 : 区县数量为:5
--------------------------------:吐鲁番市 : 区县数量为:3
--------------------------------:哈密市 : 区县数量为:3
--------------------------------:昌吉回族自治州 : 区县数量为:7
--------------------------------:博尔塔拉蒙古自治州 : 区县数量为:4
--------------------------------:巴音郭楞蒙古自治州 : 区县数量为:10
--------------------------------:阿克苏地区 : 区县数量为:9
--------------------------------:克孜勒苏柯尔克孜自治州 : 区县数量为:4
--------------------------------:喀什地区 : 区县数量为:12
--------------------------------:和田地区 : 区县数量为:8
--------------------------------:伊犁哈萨克自治州 : 区县数量为:11
--------------------------------:塔城地区 : 区县数量为:7
--------------------------------:阿勒泰地区 : 区县数量为:7
--------------------------------:自治区直辖县级行政区划 : 区县数量为:10

3.java代码

 

3.1pom依赖

  <dependency>
            <!-- jsoup HTML parser library @ https://jsoup.org/ -->
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.13.1</version>
        </dependency>

3.2实体类

public class SysAreaDO {

        private Long id;

	/**
	 * 父id
	 */
	private Long parentId;

	/**
	 * 父节点名称
	 */
	private String areaName;

	/**
	 * 行政区域编码
	 */
	private Long areaCode;

	/**
	 * 层级,1一级 ,2二级 ,3三级 
	 */
	private Long areaLevel;

}

	
	

3.3java代码



/**
 * @author yuguang
 * @date 2021/5/17 17:33
 * @description
 * 获取地址: http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/
 * 省:两位数字
 * 市:四位数字
 * 区县:六位数字
 */
public class AreaUtil {

    //国家统计局地址
    public static final String BASE_URL = "http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/";

    private static final String UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0";
    private static final int TIMEOUT = 6000; //

    private static Connection connect;
    private static Document document;

    public static void main(String[] args) throws IOException {
        List<SysAreaDO> province = getProvince(BASE_URL);
//        province.forEach(e -> {
//            System.out.println(e.getId() + ":" + e.getAreaCode() + ":" + e.getAreaName());
//        });
        System.out.println("----省数量" + province.size());


        for (SysAreaDO provinceTemp : province) {
            String cityUrl = BASE_URL + provinceTemp.getId() + ".html";
            List<SysAreaDO> city = getCity(cityUrl, provinceTemp.getId());

            System.out.println("------------:" + provinceTemp.getAreaName() + ": 市数量为:" + city.size());
//            city.forEach(e -> {
//                System.out.println(e.getId() + ":" + e.getAreaCode() + ":" + e.getAreaName());
//            });
            //遍历查找区县
            for (SysAreaDO cityTemp : city) {
                String countyUrl = BASE_URL + provinceTemp.getId() + "/" + cityTemp.getId() + ".html";
                List<SysAreaDO> countyList = getCounty(countyUrl, cityTemp.getId());
                System.out.println("--------------------------------:" + cityTemp.getAreaName() + " : 区县数量为:" + countyList.size());

            }
        }


    }

    /**
     * 获取省
     *
     * @param provinceUrl
     * @return
     * @throws IOException
     */
    public static List<SysAreaDO> getProvince(String provinceUrl) throws IOException {
        List<SysAreaDO> provinceList = new ArrayList<>();
        connect = Jsoup.connect(provinceUrl);
        document = connect.userAgent(UserAgent).timeout(TIMEOUT).ignoreContentType(true).maxBodySize(0).get();

        //获取省份列表
        ListIterator<Element> elements = document.getElementsByClass("provincetr").listIterator();

        while (elements.hasNext()) {
            ListIterator<Element> tds = elements.next().children().listIterator();
            while (tds.hasNext()) {
                Element element = tds.next().child(0);
                String provinceName = element.text();
                String href = element.attr("href");
                //是超链接的前缀
                if (!href.contains("html")) {
                    break;
                }
                String provinceCode = href.substring(0, 2);

                SysAreaDO areaDO = new SysAreaDO();
                areaDO.setId(Long.valueOf(provinceCode));
                areaDO.setAreaCode(Long.valueOf(provinceCode));
                areaDO.setAreaName(provinceName);
                areaDO.setAreaLevel(1L);
                areaDO.setParentId(0L);
                provinceList.add(areaDO);
            }
        }
        return provinceList;
    }

    /**
     * 获取市
     *
     * @param cityUrl
     * @param parentId
     * @return
     * @throws IOException
     */
    public static List<SysAreaDO> getCity(String cityUrl, Long parentId) throws IOException {
        List<SysAreaDO> cityList = new ArrayList<>();
        connect = Jsoup.connect(cityUrl);
        document = connect.userAgent(UserAgent).maxBodySize(0).timeout(TIMEOUT).ignoreContentType(true).get();
        ListIterator<Element> citys = document.getElementsByClass("citytr").listIterator();

        while (citys.hasNext()) {
            ListIterator<Element> as = citys.next().getElementsByTag("a").listIterator();

            int index = 1;
            SysAreaDO cityDO = new SysAreaDO();

            while (as.hasNext()) {
                Element c = as.next();
                if (index == 1) {
                    index++;
                    cityDO.setAreaCode(Long.parseLong(c.text().trim()) / 100000000);
                } else {
                    //区县
                    cityDO.setAreaName(c.text().trim());
                }
            }
            cityDO.setId(cityDO.getAreaCode());
            cityDO.setParentId(parentId);
            cityList.add(cityDO);
        }
        return cityList;
    }

    /**
     * 获取区县 county
     *
     * @param countyUrl
     * @param parentId
     * @return
     * @throws IOException
     */
    public static List<SysAreaDO> getCounty(String countyUrl, Long parentId) throws IOException {
        List<SysAreaDO> countyList = new ArrayList<>();

        connect = Jsoup.connect(countyUrl);
        document = connect
                .userAgent(UserAgent).maxBodySize(0).timeout(TIMEOUT).ignoreContentType(true).get();

        ListIterator<Element> countys = document.getElementsByClass("countytr").listIterator();

        while (countys.hasNext()) {
            ListIterator<Element> couna = countys.next().getElementsByTag("td").listIterator();

            SysAreaDO countyDO = new SysAreaDO();
            int countIndex = 1;
            while (couna.hasNext()) {
                Element a = couna.next();
                if (countIndex == 1) {
                    countIndex++;
                    countyDO.setAreaCode(Long.parseLong(a.text().trim()) / 1000000);
                } else {
                    countyDO.setAreaName(a.text().trim());
                }
            }
            countyDO.setId(countyDO.getId());
            countyDO.setParentId(parentId);
            countyList.add(countyDO);
        }
        return countyList;
    }


}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1. 爬取网页标题 使用Jsoup.connect()连接到目标网页并使用get()方法获取网页内容。然后使用select()方法选取网页中的标题元素。 ``` Document doc = Jsoup.connect("http://www.example.com/").get(); String title = doc.select("title").text(); System.out.println(title); ``` 2. 爬取网页中的所有链接 使用Jsoup.connect()连接到目标网页并使用get()方法获取网页内容。然后使用select()方法选取网页中的所有链接元素,并遍历每个元素提取链接地址。 ``` Document doc = Jsoup.connect("http://www.example.com/").get(); Elements links = doc.select("a[href]"); for (Element link : links) { String linkUrl = link.attr("href"); System.out.println(linkUrl); } ``` 3. 爬取网页中的图片链接 使用Jsoup.connect()连接到目标网页并使用get()方法获取网页内容。然后使用select()方法选取网页中的所有图片元素,并遍历每个元素提取图片地址。 ``` Document doc = Jsoup.connect("http://www.example.com/").get(); Elements images = doc.select("img[src]"); for (Element image : images) { String imageUrl = image.attr("src"); System.out.println(imageUrl); } ``` 4. 爬取网页中的表格数据 使用Jsoup.connect()连接到目标网页并使用get()方法获取网页内容。然后使用select()方法选取网页中的所有表格元素,并遍历每个元素提取表格数据。 ``` Document doc = Jsoup.connect("http://www.example.com/").get(); Elements tables = doc.select("table"); for (Element table : tables) { Elements rows = table.select("tr"); for (Element row : rows) { Elements cells = row.select("td"); for (Element cell : cells) { String cellText = cell.text(); System.out.println(cellText); } } } ``` 5. 爬取网页中的表单数据 使用Jsoup.connect()连接到目标网页并使用get()方法获取网页内容。然后使用select()方法选取网页中的所有表单元素,并遍历每个元素提取表单数据。 ``` Document doc = Jsoup.connect("http://www.example.com/").get(); Elements forms = doc.select("form"); for (Element form : forms) { String actionUrl = form.attr("action"); String method = form.attr("method"); System.out.println("Action URL: " + actionUrl); System.out.println("Method: " + method); Elements inputs = form.select("input"); for (Element input : inputs) { String name = input.attr("name"); String value = input.attr("value"); System.out.println(name + ": " + value); } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值