0

Web ページから気象データを収集するスクリプトを作成しています。私のコードは次のようになります。

import urllib.request
from bs4 import BeautifulSoup

# open the webpage and assign the content to a new variable
base = urllib.request.urlopen('http://www.weather.com/weather/today/Washington+DC+20006:4:US')
f = base.readlines()
f = str(f)


soup = BeautifulSoup(f)

rn_base = soup.find(itemprop="temperature-fahrenheit")
right_now = rn_base.string
print(right_now)

fl_base = soup.find(itemprop="feels-like-temperature-fahrenheit")
feels_like = fl_base.string
print(feels_like)

td_base = soup.find_all('class_="wx-temperature"')
print(td_base)

したがってright_nowfeels_like正常に出力されますが、 になると、またはを使用するかどうかに応じて空のリストtd_baseが返されます。HTML ソース コードに関して言い換えると、私のコードは と を見つけることができますが、 で失敗します。最初の 2 つが成功するのに 3 つ目が成功しない理由について、ご意見をいただければ幸いです。ありがとうございました!None[].find.find_allitemprop="temperature-fahrenheit"itemprop="feels-like-temperature-fahrenheit"class_="wx-temperature"

PS: これは、当面のタスクに関連する (IMO) html ソース コードの抜粋です。

<div class="wx-data-part wx-first">
<div class="wx-temperature"><span itemprop="temperature-fahrenheit">87</span><span class="wx-degrees">&deg;<span class="wx-unit">F</span></span></div>
<div class="wx-temperature-label">FEELS LIKE
<span itemprop="feels-like-temperature-fahrenheit">93</span>&deg;</div>
</div>
<div class="wx-data-part">
<div class="wx-temperature">94<span class="wx-degrees">&deg;</span></div>
<div class="wx-temperature-label">HIGH AT 3:25 PM</div>
</div>
<div class="wx-data-part">
<div class="wx-temperature">76<span class="wx-degrees">&deg;</span></div>
<div class="wx-temperature-label">LOW</div>
</div>
4

1 に答える 1

1

周囲を削除':

td_base = soup.find_all(class_="wx-temperature")
于 2013-07-21T03:29:35.100 に答える