あなたはほとんどありますが、あなたは、Pythonに新しいしているようですので、最初に私はこれを言及してみましょう:あなたは、変数str
に名前を付けるべきではありません、それが構築さをシャドウので、 -in strクラスです。これは、以下に示すコードで変更したものです。重要な変更点は、.findAll('a')
を.findAll('td',{'class':'left active'})
に変更し、プレーヤーのすべての名前がleft active
の<td>
タグに含まれていることを確認しました。私はまた、反復するvarを複数の代わりにelement
に変更しました。意味的に言えばより意味があります。また、投稿したコードが正しく識別されていないことに注意してください。ただし、ここに貼り付けたときの書式設定の問題だと思います。
import requests
from bs4 import BeautifulSoup
def bball_spider(url):
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
# Players
for element in soup.find('table',{'id' : 'stats'}).findAll('td',{'class':'left active'}):
names = element.string
print(names)
url = '''https://www.basketball-reference.com/play-index/psl_finder.cgi?request=1&match=single&type=totals&per_minute_base=36&per_poss_base=100&season_start=1&season_end=-1&lg_id=NBA&age_min=0&age_max=99&is_playoffs=N&height_min=0&height_max=99&year_min=2017&year_max=2017&birth_country_is=Y&as_comp=gt&as_val=0&pos_is_g=Y&pos_is_gf=Y&pos_is_f=Y&pos_is_fg=Y&pos_is_fc=Y&pos_is_c=Y&pos_is_cf=Y&c1stat=fg3_pct&c1comp=gt&c1val=40&c2stat=fg3a&c2comp=gt&c2val=164&c3stat=dbpm&c3comp=gt&c3val=0&order_by=ws'''
bball_spider(url)
これが印刷されます:
Chris Paul
Otto Porter
Joe Ingles