2016-07-22 44 views
1

我一直在尝试使用BS4从this网页刮。我找不到我想要的数据(表格中的球员名称,即“Claiborne,Morris”)。美丽的汤4发现表内的文字

当我使用:

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代码,从而呈现与您在浏览器中看到的相同的页面内容。