Ejemplo n.º 1
0
    @Override
    protected ArrayList<WeatherInfo> doInBackground(Integer... integers) {

      // 以下是获取单个城市天气的十天之内的天气信息
      Document doc = null;
      // 下面是获取所有省份的信息,主要是名字和拼音
      Document doc1 = null;
      // 下面是获取一个省的所有城市的拼音和中文名字
      Document doc2 = null;
      try {
        doc = Jsoup.connect("http://tianqi.xixik.com/city/wuhan/").get();
        Elements temp = doc.getElementsByClass("oneweather");
        for (Element element : temp) {
          // System.out.println(element.text());
          WeatherInfo weatherInfo = new WeatherInfo();
          String[] t = element.text().split(" ");
          String[] te = t[3].split("~");
          weatherInfo.setTime(t[0]);
          weatherInfo.setXingqi(t[1]);
          weatherInfo.setStatus(t[2]);
          weatherInfo.setMaxDegree(te[0]);
          weatherInfo.setMinDegree(te[1]);
          weatherInfo.setWindStatus(t[4]);
          weatherInfos.add(weatherInfo);
        }
        Elements temp1 = doc.getElementsByClass("fourday");
        for (Element element : temp1) {

          WeatherInfo weatherInfo = new WeatherInfo();
          String[] t = element.text().split(" ");
          String t1 = t[0].substring(0, 6);
          String t2 = t[0].substring(6, t[0].length());
          String[] te1 = t[2].split("~");
          weatherInfo.setTime(t1);
          weatherInfo.setXingqi(t2.substring(1, t2.length() - 1));
          weatherInfo.setStatus(t[1]);
          weatherInfo.setMaxDegree(te1[0]);
          weatherInfo.setMinDegree(te1[1]);
          weatherInfo.setWindStatus(t[3]);
          weatherInfos.add(weatherInfo);
        }
      } catch (Exception e) {
        e.printStackTrace();
      }

      // 获取省份信息
      try {
        doc1 = Jsoup.connect("http://tianqi.xixik.com/city/wuhan/").get();
        Elements Province = doc1.getElementsByClass("line");

        for (int i = 5; i < 12; i++) {
          // System.out.println(Province.get(i));
          String element0 = Province.get(i).text();
          String[] t2 = element0.split(" ");
          // 获取标签中的a的信息
          Elements te = Province.get(i).getElementsByTag("a");
          for (Element element : te) {
            // 将每个标签中的拼音和中文地名分别提取出来
            String linkHref = element.attr("href");
            String linkText = element.text().trim();
            ProvinceInfo provinceInfo = new ProvinceInfo();
            provinceInfo.setPinyin(linkHref);
            // System.out.println(provinceInfo.getPinyin());
            provinceInfo.setProvince(linkText);
            // System.out.println(provinceInfo.getProvince());
            provinceInfo.setBigArea(t2[0]);
            // System.out.println(provinceInfo.getBigArea());
            provinceInfos.add(provinceInfo);
          }
        }
        // System.out.println(Province.get(11).text());//5,6,7,8,9,10,11
      } catch (Exception e) {
        e.printStackTrace();
      }
      // 下面是返回全国各省的城市以及县城
      try {
        doc2 = Jsoup.connect("http://tianqi.xixik.com/list/").get();
        Elements city0 = doc2.getElementsByClass("cityline");
        for (Element element : city0) {
          Elements city = element.getElementsByTag("a");
          for (Element element1 : city) {
            String linkHref = element1.attr("href");
            // System.out.println(linkHref);
            String linkText = element1.text().trim();
            // System.out.println(linkText);
            City_County_Info city_County_Info = new City_County_Info();
            city_County_Info.setProvince(linkText);
            city_County_Info.setPinyin(linkHref);
            ci.add(city_County_Info);
          }
          // System.out.println(element.text());
        }
      } catch (Exception e) {
        e.printStackTrace();
      }

      return weatherInfos;
    }