使用BeautifulSoup获取span标记的值

时间:2017-02-11 11:14:18

标签: python html python-3.x parsing beautifulsoup

我有一些facebook团体,我想得到成员的数量。这个组就是一个例子:https://www.facebook.com/groups/347805588637627/ 我查看了页面上的inspect元素,它存储如下:

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

我正在努力获得&#34; 9,413名成员&#34;在页面外面。我尝试过使用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)

4 个答案:

答案 0 :(得分:2)

如果页面中有多个span标记:

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

答案 1 :(得分: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'

答案 2 :(得分:0)

Facebook使用javascrypt来防止机器人抓取。您需要使用selenium来提取python上的数据。

答案 3 :(得分:0)

如果您有多个span标签,可以尝试

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')

tags = soup('span')

for tag in tags:
  print(tag.contents[0])