날씨 크롤링

<template>
  <div class="all">
    <button v-on:click="getData">
      날씨
    </button>

    <div>
      <dt class="detail">
        <dd class="temperature" v-for="(Temperature) in Temperature">
          {{Temperature}}
        </dd>
      </dt>
      <dt class="detail">
        <dd class="weather" v-for="(weather, index) in weather">
          {{weather}}
          <!-- <dd v-if="weather[index+1]==='맑음'"> 맑음1</dd>
          <dd v-else-if="weather[index+1]==='구름많음'"> 구름많음1</dd>
          <dd v-else-if="weather[index+1]==='흐림'"> 흐림1</dd> -->
        </dd>
      </dt>

      <dt class="detail">
        <dd class="time" v-for="(time) in time">
          {{time}}
        </dd>
      </dt>
    </div>




  </div>
</template>

<script>
var axios = require('axios')
var cheerio = require('cheerio');

export default {
  data() {
    return {
      number : '',
      Temperature : [],
      weather: [],
      time : [],
      checkWeather : ["구름많음", "흐림", "맑음" ]

    }
  },
  methods: {
    getData(){
      axios.get('https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=%EB%82%A0%EC%94%A8')
      .then(res => {
        var $ = cheerio.load(res.data)
        var number = $("#main_pack > div.sc.cs_weather._weather > div:nth-child(2) > div.weather_box > div.weather_area._mainArea > div.today_area._mainTabContent > div.table_info.bytime._todayWeatherByTime > div.info_list.weather_condition._tabContent > ul > li").length
        this.number = number

        for(var i=1; i<=number; i++){
          this.Temperature.push($("#main_pack > div.sc.cs_weather._weather > div:nth-child(2) > div.weather_box > div.weather_area._mainArea > div.today_area._mainTabContent > div.table_info.bytime._todayWeatherByTime > div.info_list.weather_condition._tabContent > ul > li:nth-child("+i+") > dl > dd.weather_item._dotWrapper > span:nth-child(1)").text())
        }
        for(var i=1; i<=number; i++){
          this.weather.push($("#main_pack > div.sc.cs_weather._weather > div:nth-child(2) > div.weather_box > div.weather_area._mainArea > div.today_area._mainTabContent > div.table_info.bytime._todayWeatherByTime > div.info_list.weather_condition._tabContent > ul > li:nth-child("+i+") > dl > dd.item_condition > span").text())
        }
        for(var i=1; i<=number; i++){
          this.time.push($("#main_pack > div.sc.cs_weather._weather > div:nth-child(2) > div.weather_box > div.weather_area._mainArea > div.today_area._mainTabContent > div.table_info.bytime._todayWeatherByTime > div.info_list.weather_condition._tabContent > ul > li:nth-child("+i+") > dl > dd.item_time > span").text())
        }
        console.log(this.weather)
      })
    }
  },
}
</script>

<style scoped>

  .detail{
    display: flex;
    flex-direction: row;
  }
  .temperature, .weather, .time{
    width: 12.5%;
    padding-top: 20px;
  }

</style>

+ Recent posts