名前だけを取得するには簡単です、class_="game"
はそうあなたが単なるテキスト名でTDを引っ張るも、両方の奇数とを取得し使用します。
from bs4 import BeautifulSoup
import requests
soup = BeautifulSoup(requests.get("http://www.scoresandodds.com/index.html").content)
table = soup.select_one("#mlb").find_next("table")
head = ",".join([th.text for th in table.select("tr th")])
print(head)
for tr in table.find_all("tr",class_="team"):
print(tr.find("td","name").text.strip())
あなたを与えるだろうどの:
951 SAN FRANCISCO GIANTS
952 PITTSBURGH PIRATES
953 SAN DIEGO PADRES
954 CINCINNATI REDS
955 CHICAGO CUBS
956 MIAMI MARLINS
957 NEW YORK METS
958 ATLANTA BRAVES
959 ARIZONA DIAMONDBACKS
960 COLORADO ROCKIES
961 SEATTLE MARINERS
962 DETROIT TIGERS
963 CHICAGO WHITE SOX
964 BOSTON RED SOX
965 OAKLAND ATHLETICS
966 LOS ANGELES ANGELS
967 PHILADELPHIA PHILLIES
968 MINNESOTA TWINS
複数のデータを取得するには、クラスのリストを渡すことができます。
from bs4 import BeautifulSoup
import requests
soup = BeautifulSoup(requests.get("http://www.scoresandodds.com/index.html").content)
table = soup.select_one("#mlb").find_next("table")
head = ",".join([th.text for th in table.select("tr th")])
print(head)
for tr in table.find_all("tr",class_="team"):
print(", ".join([td.text.strip() for td in tr.find_all("td",["name","pitcher","currentline","score"]) ]))
私たちは、ソースを見れば、あなたはいくつかのクラス名がラインのように繰り返される参照:部分を使用して
だから我々はまた、など現在とrunlineを取得するためにidを使用することができます。..データIDテキスト:
for tr in table.find_all("tr", class_="team"):
print(tr.select_one("td[id*=Pitcher]").text)
print(tr.select_one("td[id*=Current]").text)
print(tr.select_one("td[id*=Line]").text)
print("")
Whicはあなたを与えるだろう:
(r) surez, a
8.5o15
+1.5(-207)
(l) niese, j
-108
-1.5(+190)
(l) friedrich, c
9.5o15
+1.5(-195)
(l) lamb, j
-115
-1.5(+179)
(l) lester, j
-156
-1.5(-105)
(l) chen, w
7.5o15
+1.5(-103)
(r) harvey, m
-155
-1.5(+106)
(r) wisler, m
7.5u15
+1.5(-115)
(r) greinke, z
-150
-1.5(+109)
(r) butler, e
10.5
+1.5(-118)
(r) sampson, a
10u15
+1.5(-170)
(l) norris, d
-123
-1.5(+156)
(r) shields, j
10o20
+1.5(+117)
(r) porcello, r
-235
-1.5(-127)
(r) graveman, k
8o15
+1.5(-170)
(r) lincecum, t
-133
-1.5(+156)
(r) eickhoff, j
8.5
+1.5(-154)
(r) nolasco, r
-151
-1.5(+142)
すべてのテーブルデータを取得するには、すべてをまとめて作成する必要があります。
ありがとう、私が混乱しているのは、テーブル= soup.select_one( "#mlb")。find_next( "table")find_next( 'table')を除いて、行を降ろす?私はテーブルのタグをどこからでも明確にすることが大切なページの最上部以外は何も言わなかった。助けてくれてありがとう! – Beez
@Beezの場合、 'select_one(" table ")'や 'find(" table ")'のようにテーブルを選択するだけで、そのIDを持つdivの後のテーブルにデータがあります。 'Team、Pitcher、Open、Line Movements、Current、Runline、Scores'だけでなくもっと多くのヘッダ/カラム –