用beautifulsoup从span中提取文本

2024-06-25 23:13:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解析一些LinkedIn的数据,我想在for循环中获取这个范围内的文本。因此下面将返回一个string=“2个共享连接”

<span class="search-result__social-proof-count Sans-13px-black-55%-semibold text-align-left ml1">
      2 shared connections
    </span>

下面是xpath:

^{pr2}$

到目前为止,我可以使用以下代码正确选择量程:

mutual_conns_with_text = div.find('span', {'class': 'search-result__social-proof-count Sans-13px-black-55%-semibold text-align-left ml1'})

但是,上面选择的是整个span而不是只选择文本。下面的代码抛出一个异常:

mutual_conns_with_text = div.find('span', {'class': 'search-result__social-proof-count Sans-13px-black-55%-semibold text-align-left ml1'}).getText()

例外情况:

AttributeError: 'NoneType' object has no attribute 'getText'

Tags: text文本searchcountsocialresultleftclass
1条回答
网友
1楼 · 发布于 2024-06-25 23:13:00

您只需请求span元素的text属性:

>>> import bs4
>>> HTML = '''\
... <span class="search-result__social-proof-count Sans-13px-black-55%-semibold text-align-left ml1">
...     2 shared connection
... </span>'''
>>> soup = bs4.BeautifulSoup(HTML, 'lxml')
>>> mutual_conns_with_text = soup.find('span', {'class': 'search-result__social-proof-count Sans-13px-black-55%-semibold text-align-left ml1'})
>>> mutual_conns_with_text.text
'\n\t2 shared connection\n'

相关问题 更多 >