0

我尝试连接到一个网站,从中获取一些 URL,然后连接到这些 URL,获取一些信息。这是我的代码。

    URL url = new URL("http://www.nchmf.gov.vn/web/vi-VN/62/23/44/map/Default.aspx");
    URLConnection con = url.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));

    String l;
    String Area;

    Pattern Province = Pattern.compile("Thị xã/T.Phố :");
    Pattern City = Pattern.compile("<option(.*?)ue=\"(.*?)\">(.*?)</option>");


    while ((l=in.readLine())!=null) {
        Matcher ProvinceFound = Province.matcher(l);
        if (ProvinceFound.find()) {
            while((l=in.readLine())!=null
                  && !l.contains("</select></span>")){
                Matcher CityCode = City.matcher(l);
                if(CityCode.find()){
                    if(!"0".equals(CityCode.group(2))){
                        URL url1 = new URL("http://www.nchmf.gov.vn/web/vi-VN/62/23/44/map/Default.aspx");
                        URLConnection con1 = url1.openConnection();
                        BufferedReader in1 = new BufferedReader(new InputStreamReader(con1.getInputStream()));

                        while((Area=in1.readLine())!=null){
                            System.out.println(Area);
                            break;
                        }
                    }

                }
            }
        }
    }
} 

我得到的结果只是空行。如果我输入“System.out.println(l);”,它仍然会打印一些东西 在第一个连接上,所以我认为问题出在第二个连接上。

谁能告诉我我的代码有什么问题,非常感谢。

4

1 回答 1

0

我猜您无法从第二个 URL 读取,因为您阻止了第一个 URL。两个建议:

  1. 为您要阅读的每个新 URL 启动一个新线程
  2. 读取第一个 URL 中的所有数据并将您要处理的链接添加到列表中。然后,当您完成阅读主 URL 时,您可以一次阅读其他每个 URL。
于 2013-06-18T05:13:13.480 回答