gpt4 book ai didi

python - for 循环中的变量未显示在另一个循环中

转载 作者:太空宇宙 更新时间:2023-11-03 20:43:53 26 4
gpt4 key购买 nike

我一直在练习使用 nba.com 球员列表进行网页抓取,但遇到了一个问题:当我在另一个 for 循环中调用在一个 for 循环中抓取的链接时,该链接不会出现。

我已经尝试在原始 for 循环和我希望变量显示的 for 循环中创建更多变量,但它没有出现。我正在尝试使用我抓取的链接(它不是完整的链接,而是我试图与链接的基础结合起来的链接的结尾部分)。

from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.chrome.options import Options
class Player():
"""docstring for ClassName"""
def __init__(self):
self.name = ""
self.link = ""
self.PPG = ""
self.RPG = ""
def get_player_list():
opt = webdriver.ChromeOptions()
opt.add_argument('headless')
browser = webdriver.Chrome(options=opt)
browser.get('https://stats.nba.com/players/list/')
soup = BeautifulSoup(browser.page_source, 'lxml')
browser.quit()
names = soup.find('div',class_='stats-player-list players-list')
player_list = []



for name in names.find_all('a'):
new_play = Player()
new_play.name = name.text
new_play.link = name["href"]
player_list.append(new_play)

for one_player in player_list:
print (one_player.name)
print (one_player.link)



return player_list
def get_player_stats(player_list):
opt = webdriver.ChromeOptions()
opt.add_argument('headless')
browser = webdriver.Chrome(options=opt)
for p in player_list[0:2]:

browser.get('https://stats.nba.com'+p.link)

soup = BeautifulSoup(browser.page_source, 'lxml')

browser.quit()
PPG = ""
points1 = soup.find('a',href = '/players/traditional/?sort=PTS&dir=-1')
points = points1.div
for point in points.findNextSiblings():
PPG = "PPG" + point.text
RPG = ""
rebounds1 = soup.find('a',href = '/players/traditional/?sort=REB&dir=-1')
rebounds = rebounds1.div
for rebound in rebounds.findNextSiblings():
RPG = "RPG" + rebound.text

p.PPG = PPG
p.RPG = RPG

browser.quit()
return player_list
player_list = get_player_stats(get_player_list())

如以 names.find_all('a'): 开头的偏移代码所示,一切正常,链接将按照模板传输并打印出来(例如 Abrines、Alex/player)/203518/),但是当它到达 for p in player_list[0:2]: 时,当我放入 p.link 时,它不会被转移,当我尝试制作它打印 p.link,但没有打印任何内容。任何帮助将不胜感激,因为我已经测试了很多东西一段时间了!

最佳答案

player_list 变量不是全局变量。您可以在单个函数中定义它,要在所有函数中跟踪它,您应该全局初始化它。

关于python - for 循环中的变量未显示在另一个循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56708770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com