Возникли проблемы при использовании BeautifulSoup для анализа WeatherUnderground - PullRequest
1 голос
/ 02 ноября 2011

Я пытаюсь адаптировать код для извлечения информации из wunderground. Однако сценарий, который я пытаюсь адаптировать, был написан в 2008 году, и изменение погоды под землей изменилось. У меня проблемы с супом. Телом. Я хочу извлечь данные о суточных осадках с данного сайта. http://www.wunderground.com/history/airport/KBUF/2011/5/2/DailyHistory.html импорт urllib2 из BeautifulSoup импортировать BeautifulSoup

# Create/open a file called wunder.txt (which will be a comma-delimited file)
f = open('wunder-data.txt', 'w')

# Iterate through year, month, and day
for y in range(1980, 2007):
  for m in range(1, 13):
    for d in range(1, 32):

      # Check if leap year
      if y%400 == 0:
        leap = True
      elif y%100 == 0:
        leap = False
      elif y%4 == 0:
        leap = True
      else:
        leap = False

      # Check if already gone through month
      if (m == 2 and leap and d > 29):
        continue
      elif (m == 2 and d > 28):
        continue
      elif (m in [4, 6, 9, 10] and d > 30):
        continue

      # Open wunderground.com url
      url = "http://www.wunderground.com/history/airport/KBUF/"+str(y)+ "/" + str(m) + "/" + str(d) + "/DailyHistory.html"
      page = urllib2.urlopen(url)

      # Get temperature from page
      soup = BeautifulSoup(page)
      dayTemp = soup.body.nobr.b.string

      # Format month for timestamp
      if len(str(m)) < 2:
        mStamp = '0' + str(m)
      else:
        mStamp = str(m)

      # Format day for timestamp
      if len(str(d)) < 2:
        dStamp = '0' + str(d)
      else:
        dStamp = str(d)

      # Build timestamp
      timestamp = str(y) + mStamp + dStamp

      # Write timestamp and temperature to file
      f.write(timestamp + ',' + dayTemp + '\n')

# Done getting data! Close file.
f.close()

1 Ответ

3 голосов
/ 02 ноября 2011

Не связывайтесь с анализом HTML, скорее всего он снова изменится без уведомления. Получите один из их CSV-файлов (в нижней части HTML-страниц есть ссылки) и проанализируйте его с помощью модуля csv .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...