メンバー数を知りたいフェイスブックグループがたくさんあります。例は次のグループです。 https://www.facebook.com/groups/347805588637627/ ページのinspect要素を確認したところ、次のように保存されています。
<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)
ページに複数のスパンタグがある場合:
from bs4 import BeautifulSoup
soup = BeautifulSoup(your_html_input, 'html.parser')
span = soup.find("span", id="count_text")
span.text
解析されたスパンの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'
Facebookはjavascrypt
を使用して、ボットによるスクレイピングを防止します。 Pythonでデータを抽出するには、Selenium
を使用する必要があります。
複数のスパンタグがある場合は、これを試すことができます
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
tags = soup('span')
for tag in tags:
print(tag.contents[0])