2016-05-10 6 views
1

私はESPN.comPythonでBeautifulSoupを使用して特定のタグ属性テキストを取得するにはどうすればよいですか?

からMLBのスケジュールデータを取得するために、それはほとんど完成だが、私はここで少し問題を抱えて、BS4とPythonで少しスクレーパーをコーディングしています:

snippet

<div class="teams" data-behavior="fix_broken_images"><a name="&amp;lpos=mlb:schedule:team" href="/mlb/team/_/name/kc"><img src="http://a.espncdn.com/combiner/i?img=/i/teamlogos/mlb/500/scoreboard/kc.png&amp;h=50" class="schedule-team-logo"></a></div><a name="&amp;lpos=mlb:schedule:team" class="team-name" href="/mlb/team/_/name/kc"><span>Kansas City</span> <abbr title="Kansas City Royals">KC</abbr></a> 

私は実際に<span> </span>コンテンツを読むことができますが、私は私が欠けているかわからない、私はoを考え出していませんでした<abbr title>

に完全なチーム名を取得したいのですがどのようにそれを行うには

ありがとう!スニペットのために

+1

htmlのない画像 –

+0

が完了します。それは大丈夫だと思っています – l3g10n3

答えて

1

あなたはクラスteam-nameアンカー内部略称タグからtitle属性たい:

h = """<div class="teams" data-behavior="fix_broken_images"><a name="&amp;lpos=mlb:schedule:team" href="/mlb/team/_/name/kc"><img src="http://a.espncdn.com/combiner/i?img=/i/teamlogos/mlb/500/scoreboard/kc.png&amp;h=50" class="schedule-team-logo"></a></div><a name="&amp;lpos=mlb:schedule:team" class="team-name" href="/mlb/team/_/name/kc"><span>Kansas City</span> <abbr title="Kansas City Royals">KC</abbr></a>""" 


soup = BeautifulSoup(h) 

print(soup.select_one("a.team-name abbr")["title"]) 

あなたに与えます:

Kansas City Royals 

または検索を使用しました:

h = """<div class="teams" data-behavior="fix_broken_images"><a name="&amp;lpos=mlb:schedule:team" href="/mlb/team/_/name/kc"><img src="http://a.espncdn.com/combiner/i?img=/i/teamlogos/mlb/500/scoreboard/kc.png&amp;h=50" class="schedule-team-logo"></a></div><a name="&amp;lpos=mlb:schedule:team" class="team-name" href="/mlb/team/_/name/kc"><span>Kansas City</span> <abbr title="Kansas City Royals">KC</abbr></a>""" 

soup = BeautifulSoup(h) 

print(soup.find("a", attrs={"class":"team-name"}).abbr["title"]) 
これは、サイトからのすべての名前を取得します

from bs4 import BeautifulSoup 
import requests 
url = "http://espn.go.com/mlb/schedule" 

soup = BeautifulSoup(requests.get(url).content) 

table = soup.select_one("table.schedule.has-team-logos") 

print([a["title"] for a in table.select("a.team-name abbr")]) 

出力:

['Detroit Tigers', 'Washington Nationals', 'Kansas City Royals', 'New York Yankees', 'Oakland Athletics', 'Boston Red Sox', 'Pittsburgh Pirates', 'Cincinnati Reds', 'Milwaukee Brewers', 'Miami Marlins', 'Chicago White Sox', 'Texas Rangers', 'San Diego Padres', 'Chicago Cubs', 'Baltimore Orioles', 'Minnesota Twins', 'Cleveland Indians', 'Houston Astros', 'Arizona Diamondbacks', 'Colorado Rockies', 'Tampa Bay Rays', 'Seattle Mariners', 'New York Mets', 'Los Angeles Dodgers', 'Toronto Blue Jays', 'San Francisco Giants'] 
+0

おっと、ありがとう、パドレイク!それはちょうど私が後であったものです – l3g10n3

+0

いいえprob、幸せな擦り傷。 –

関連する問題