0
私はESPNのWebページを解析して、BeautifulSoupを使用して、各週のNFL試合で各NFL試合をプレイしています。私はほとんどの情報を得ることができますが、私は時間情報に問題があります。BeautifulSoupテキストの間に<a></a>が返されない
何らかの理由で、aタグ間のテキストが返されていません。
のいずれかのHTMLタグがある:私は、Aタグの間に "12:00 PM" を取得するために探しています
<a data-dateformat="time1" name="&lpos=nfl:schedule:time" href="/nfl/game?gameId=400874572">12:00 PM</a>
、代わりに私が取得:
<a data-dateformat="time1" href="/nfl/game?gameId=400874572" name="&lpos=nfl:schedule:time"></a>
タグの間にテキストがありません。
ここに私がウェブページを解析するのに使ったことがあります。
import urllib2
from bs4 import BeautifulSoup
def parse_nfl_schedule_espn():
schedule = BeautifulSoup(urllib2.urlopen("http://www.espn.com/nfl/schedule/_/week/10").read(), "lxml")
for date in schedule.find_all('h2'):
#separate by game
game_info = date.nextSibling.find_all('tr')
date = str(date).split(">")
date = date[1].split("<")
date = date[0]
#print date
for i in range(len(game_info)):
#separate each part of game row
value = game_info[i].find_all('td')
#iterate over <thead>
if len(value) > 1:
#away team abv
away = str(value[0].find('abbr')).split(">")
away = away[1].split("<")
away = away[0]
#home team abv
home = str(value[1].find('abbr')).split(">")
home = home[1].split("<")
home = home[0]
time = value[2].find_all('a')
print time
#print "%s at %s" % (away, home)
if __name__ == "__main__":
parse_nfl_schedule_espn()
ご協力いただきありがとうございます。
この時間はjavascriptによってプローブが生成されます。 BSでそれを削ることはできません。セレンを使う必要があります – e4c5
ノードを文字列に変換し、 '<'で分割することは何ですか?これは、ノードツリーとしてデータにアクセスしているBeautifulSoupの使い方全体を打ち消してしまいます。 – spectras
ページ[that one](http://www.espn.com/nfl/schedule)ですか?公開ページのURLを隠している点はなく、あなたを助けるのが難しくなります。 – spectras