2017-02-11 446 views
0

我有許多facebook組,希望獲得成員的數量。一個例子是本組:https://www.facebook.com/groups/347805588637627/ 我已經看過網頁上檢查元素,並將其存儲像這樣:使用BeautifulSoup獲取span標記的值

<span id="count_text">9,413 members</span> 

我試圖讓「9,413成員」出來的頁面。我曾嘗試使用BeautifulSoup,但無法解決問題。

感謝

編輯:

from bs4 import BeautifulSoup 
import requests 

url = "https://www.facebook.com/groups/347805588637627/" 
r = requests.get(url) 
data = r.text 
soup = BeautifulSoup(data, "html.parser") 
span = soup.find("span", id="count_text") 
print(span.text) 
+0

pr int數據,你會注意到沒有這樣的標籤。 –

回答

0

您可以使用text屬性解析跨度:

>>> from bs4 import BeautifulSoup 
>>> soup = BeautifulSoup('<span id="count_text">9,413 members</span>', 'html.parser') 
>>> soup.span 
<span id="count_text">9,413 members</span> 
>>> soup.span.text 
'9,413 members' 
+0

這個效果很好,但是在實際頁面上嘗試時,我仍然無法使其工作。我是BeautifulSoup的新手,我用我正在使用的代碼更新了我的問題。謝謝 – newaccount1111

1

但如果是在頁面超過一個span標籤:

from bs4 import BeautifulSoup 
soup = BeautifulSoup(your_html_input, 'html.parser') 
span = soup.find("span", id="count_text") 
span.text 
+0

謝謝,我試過使用這個,但被給了一個AttributeError:'NoneType'對象沒有屬性'文本'我更新了我的問題與我正在使用的代碼。 – newaccount1111

+0

'soup.find()'沒有找到任何結果,所以你在'None'上調用'.text'。 嘗試在瀏覽器中以隱身模式查看相同的網頁;當您未登錄時,您正在查找的元素將不會顯示。 – Henrik

+0

謝謝,這是完全有道理的,看起來好像我將不得不尋找另一種方式來通過url獲得facebook組成員的數量。是否有可能登錄,然後使用美麗的湯一些如何? – newaccount1111

相關問題