2017-11-29 12 views
0

私は次のコード行に属性「データ-O」の値を取得しようとしています:美しいスープ - 属性の値の抽出は動作しません

ここ<td class="bc bs oi" data-odig="2.55" data-o="17/11" data-hcap="">17/11</td>

が私のコードです(私は上記のTDタグ)

import urllib.request 
from bs4 import BeautifulSoup 

x = urllib.request.urlopen('https://www.oddschecker.com/football/champions- 
league/bayern-munich-v-paris-st-germain/winner') 

soup = BeautifulSoup(x.read()) 

alltd = soup.find_all('td') 

for n in alltd: 
    print(n['data-o']) 

が存在するURLを参照してください。私は常にエラーメッセージが表示されます... いくつかの助けてください?

ありがとうございます!

+0

どのようなエラーメッセージが表示されますか?どのようなエラーメッセージが表示されないかは、エラーメッセージを手助けすることはできません。 – davedwards

答えて

0

classタグが希望'data-o'項目に固有のものであるので、あなたはその後、それらの項目ごとに'data-o'項目を印刷し、最初のclass='bc bs oi'を含んだけそれら<td>のタグを取得するための構文{'class': 'class_name'}を使用することもできます。

import urllib.request 
from bs4 import BeautifulSoup 

x = urllib.request.urlopen('https://www.oddschecker.com/football/champions- 
league/bayern-munich-v-paris-st-germain/winner') 

soup = BeautifulSoup(x.read(), 'html.parser') 

alltd = soup.find_all('td', {'class': 'bc bs oi'}) 

for item in alltd: 
    print item['data-o'] 

出力:

6/4 
17/11 
13/8 
23/10 

またはあなただけのlistをしたい場合:

print [str(item['data-o']) for item in alltd] 
['6/4', '17/11', '13/8', '23/10'] 

は、この情報がお役に立てば幸いです。

+0

ありがとう、それは完全に動作します! – Skyly83

関連する問題