<p>我不知道您是否需要pandas的解决方案,这是一个没有它的解决方案,只需要使用更高级的<code>attrs</code>关键字和标准Python <code>format</code>来获得格式化的表。你知道吗</p>
<p>请注意,<code>format</code>中的数字是手动选择的,不会根据实际数据进行调整。你知道吗</p>
<pre><code>import requests
from bs4 import BeautifulSoup
url = 'https://www.basketball-reference.com/leagues/NBA_2018_games.html'
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
game_start_times = soup.find_all('td', attrs={"data-stat": "game_start_time", "class": "right"})
visitor_team_names = soup.find_all('td', attrs={"data-stat": "visitor_team_name", "class": "left"})
visitor_ptss = soup.find_all('td', attrs={"data-stat": "visitor_pts", "class": "right"})
home_team_names = soup.find_all('td', attrs={"data-stat": "home_team_name", "class": "left"})
home_pts = soup.find_all('td', attrs={"data-stat": "home_pts", "class": "right"})
for i in range(len(game_start_times)):
print('{:10s} {:28s} {:5s} {:28s} {:5s}'.format(game_start_times[i].text.strip(),
visitor_team_names[i].text.strip(),
visitor_ptss[i].text.strip(),
home_team_names[i].text.strip(),
home_pts[i].text.strip()))
</code></pre>
<hr/>
<pre><code>8:01 pm Boston Celtics 99 Cleveland Cavaliers 102
10:30 pm Houston Rockets 122 Golden State Warriors 121
7:30 pm Milwaukee Bucks 108 Boston Celtics 100
8:30 pm Atlanta Hawks 117 Dallas Mavericks 111
</code></pre>