我一直在尝试使用BS4从this网页中删除。我找不到我想要的数据(表中的玩家名称,即“Claiborne,Morris”)。
当我使用时:
soup = BeautifulSoup(r.content, "html.parser")
PlayerName = soup.find_all("table")
print (PlayerName)
玩家的名字都不在输出中,它只显示不同的表格。
当我使用时:
soup = BeautifulSoup(r.content, 'html.parser')
texts = soup.findAll(text=True)
print(texts)
我可以看到他们。
关于如何挖掘并获取玩家名称的任何建议?
答案 0 :(得分:0)
您正在寻找的表格在呈现页面时由JavaScript动态填充。使用例如检索页面时requests
,它只检索原始未经修改的页面。这意味着您在浏览器中看到的某些元素将丢失。
您可以在第二段代码中找到播放器名称,这是因为它们包含在页面的JavaScript源代码中,如JSON。但是,您将无法使用BeautifulSoup检索它们,因为它不会解析JavaScript。
最好的选择是使用像Selenium这样的东西,它尽可能地模仿浏览器并执行JavaScript代码,从而呈现与您在自己的浏览器中看到的相同的页面内容。