2017-08-30 24 views
0

私は同様の質問を検索し、いくつかの考えを示しましたが、私はPythonには新しく、これを理解できないようです。私は、このページにプレーヤーのテーブルからデータをこすりしようとしています:BeautifulSoupを使用してテーブルから特定の値を選択する

http://www.rotoworld.com/teams/depth-charts/mlb.aspx

HTMLを各エントリ(プレイヤー)のために、たとえば次のとおりです。

<td><b>3B</b></td><td>1. <a href='/player/mlb/6242/manny-machado'>Manny Machado</a></td> 

だから私は

players=soup.select('td > a') 
を実行することができます

すべてのプレイヤーのリストを取得します。しかし、私は特定のポジションの選手、つまり3B、SSなどの選手だけを選びたいと思っています。ポジションは単なる別のテキストストリングです。私はそれを区別することはできません。私はこれでどこから始めることができるかも考えている人はいますか?

編集:もちろん、同じ位置が常に同じ行にある場合、これは簡単です。 1Bは常に2〜3行ですが、表からわかるように、これは当てはまりません。

答えて

0

あなたはデータの行をループすることができますし、兄弟のことを確認してください。

for row in soup.findAll('tr'): 
    cell = row.findNext('td') 
    if cell.text == '3B': 
     print(cell.next_sibling.find('a')) 

出力されますどの:

<a href="/player/mlb/6242/manny-machado">Manny Machado</a> 
+0

はああ[OK]を、それは素晴らしいことです!どうもありがとう。 – Daniel

関連する問題