2016-07-22 48 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代碼,從而呈現與您在瀏覽器中看到的相同的頁面內容。