一般的なテーブル形式ではなく、ロボページページからデータを取得する方法を見つけようとしています。私は新しい、以前は非常に基本的でした:一般的なテーブルではないWebスクレイピングデータ - python
url = 'site.com'
html = requests.get(url).content
df_list = pd.read_html(html)
temp_df = df_list[-1]
これは十分です...しかしこれは異なります。
https://rotogrinders.com/lineups/nfl?week=1&site=fanduelを見ると、各チームの選手のリストが、上から下に順番に表示されます。そこから、私はチームによって深さチャートを行うことができますが、私は選手とポジションのリストを取得する必要があります。各チームは別々の列にあり、お互いにプレイしている2つのチームによってグループ分けされています。私は名前と位置だけが必要ですが、他の情報があればうまくいきます。
基本的に、これは私が出力になりたいものです。チームの残りの部分が続く
Alex Smith QB $7.2K 31.0
Patrick Mahomes QB 0
Kareem Hunt RB $7.8K 43.1
Charcandrick West RB $5.2K 9.0
C.J. Spiller RB $4.5K 0
Tyreek Hill WR $7.2K 23.3
Chris Conley WR $4.9K 5.3
Albert Wilson WR $4.9K 6.2
De'Anthony Thomas WR $4.5K 0.7
Demarcus Robinson WR $4.5K 0
Travis Kelce TE $6.7K 6.9
Demetrius Harris TE $4.5K 8.5
Cairo Santos K $4.6K 6.0
Tom Brady QB $9.2K 10.7
Jimmy Garoppolo QB $6K 0
Mike Gillislee RB $6.7K 22.5
James White RB $5.7K 8.3
Dion Lewis RB $5.1K 0.9
Brandin Cooks WR $7.9K 10.3
Chris Hogan WR $6.2K 3.0
Danny Amendola WR $6.1K 13.0
Malcolm Mitchell WR $4.9K 0
Phillip Dorsett WR $5K 0.0
Rob Gronkowski TE $8.1K 4.3
Dwayne Allen TE $4.9K 0.0
Stephen Gostkowski K $5.1K 9.0
... ... .....
。
編集:これは私が働いているものです。
url = 'https://rotogrinders.com/lineups/nfl?week=1&site=fanduel'
page = requests.get(url).content
soup = BeautifulSoup(page, 'html.parser')
name_box = soup.find('li', attrs={'class': 'player'})
name = name_box.text.strip()
、ここでは、私が得てんですよ。私は現在私が持っているもの(どれが最初のプレーヤーであり、すべての空白がある)から、上に示したような出力を得る方法を見つけ出そうとしています。ここ
は私の出力です:
print (name)
Alex Smith
QB
$7.2K
31.0
はbeautifulsoupとの仕事を試してみてください。 –
はい。私はbeautifulsoupで働いています。ちょうどそれで苦労している。私は基本的な、今はそれを拡張しようとしている。 上記を参照して、質問に私がどこにいるのかを追加しました... – chitown88