首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >美女汤找不到文字标签

美女汤找不到文字标签
EN

Stack Overflow用户
提问于 2015-05-12 16:25:39
回答 1查看 1.2K关注 0票数 4

美丽的汤突然找不到它的文字标签。

我有一个html,其中显示了这个标记:

代码语言:javascript
复制
<span class="date">Telefon: <b>+421 902 808 344</b></span>

BS4找不到这个标签:

代码语言:javascript
复制
telephone = soup.find('span',{'text':re.compile('.*Telefon.*')})
print telephone

>>> None

我尝试过很多方法,比如

find('span',text='Telefon: ')find('span', text=re.compile('Telefon: .*')

但什么都不管用。我已经尝试过将html.parser更改为lxml

可能出了什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-12 16:46:11

BeautifulSoup将字符串Telefon:视为span标记中的bs4.element.NavigableString。所以你可以用

代码语言:javascript
复制
import bs4
import re

soup = bs4.BeautifulSoup('<span class="date">Telefon: <b>+421 902 808 344</b></span>')
for span in soup.find_all('span', {'class':"date"}):
    if span.find(text=re.compile('Telefon:')):
        for text in span.stripped_strings:
            print(text)
# Telefon:
# +421 902 808 344

或者,您可以直接使用lxml:

代码语言:javascript
复制
import lxml.html as LH

root = LH.fromstring('<span class="date">Telefon: <b>+421 902 808 344</b></span>')

for span in root.xpath('//span[@class="date" and contains(text(), "Telefon:")]'):
    print(span.text_content())
    # Telefon: +421 902 808 344
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30196535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档