我在決議 NBA 首發陣容的代碼時遇到了麻煩,如果可能的話,我希望得到一些幫助。
到目前為止,這是我的代碼:
import requests
from bs4 import BeautifulSoup
url = "https://www.rotowire.com/basketball/nba-lineups.php"
soup = BeautifulSoup(requests.get(url).text, "html.parser")
lineups = soup.find_all(class_='lineup__player')
print(lineups)
我正在尋找以下資料:
播放器
團隊
位置
我希望抓取資料,然后從輸出中創建一個 Pandas Dataframe。
這是我想要的輸出的示例:
Player Team Position
Dennis Schroder BOS PG
Robert Langford BOS SG
Jayson Tatum BOS SF
Jabari Parker BOS PF
Grant Williams BOS C
Player Team Postion
Kyle Lowry MIA PG
Duncan Robinson MIA SG
Jimmy Butler MIA SF
P.J.Tucker MIA PF
Bam Adebayo MIA C
... ... ...
我能夠找到播放器資料,但無法成功決議它。我可以看到位于“標題”內的播放器資料。
任何有關如何完成此專案的提示將不勝感激。預先感謝您提供的任何幫助。
我只是在尋找 5 名首發球員……不需要添加替補球員。并且不確定是否有某種方法可以像我上面的輸出那樣在每個團隊之間添加一個空格。
這是我想決議的當前輸出的示例:
[<li class="lineup__player is-pct-play-100" title="Very Likely To Play">
<div class="lineup__pos">PG</div>
<a href="/basketball/player.php?id=3444" title="Dennis Schroder">D. Schroder</a>
</li>, <li class="lineup__player is-pct-play-100" title="Very Likely To Play">
<div class="lineup__pos">SG</div>
<a href="/basketball/player.php?id=4762" title="Romeo Langford">R.
uj5u.com熱心網友回復:
你在正確的軌道上。這是一種方法。
import requests, pandas
from bs4 import BeautifulSoup
url = "https://www.rotowire.com/basketball/nba-lineups.php"
soup = BeautifulSoup(requests.get(url).text, "html.parser")
lineups = soup.find_all(class_='is-pct-play-100')
positions = [x.find('div').text for x in lineups]
names = [x.find('a')['title'] for x in lineups]
teams = sum([[x.text] * 5 for x in soup.find_all(class_='lineup__abbr')], [])
df = pandas.DataFrame(zip(names, teams, positions))
print(df)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/318315.html
上一篇:生成隨機坐標點Python的函式
