为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据python中的条件提取文本

如何根据python中的条件提取文本

慕尼黑8549860 2023-03-30 10:28:10
我有如下的汤数据。<a href="/title/tt0110912/" title="Quentin Tarantino">Pulp Fiction</a><a href="/title/tt0137523/" title="David Fincher">Fight Club</a><a href="blablabla" title="Yet to Release">Yet to Release</a><a href="something" title="Movies">Coming soon</a>我需要这些标签中的文本数据a,也许href=/title/*wildcharacter*我的可能看起来像这样。titles = []for a in soup.find_all("a",href=True):    if a.text:        titles.append(a.text.replace('\n'," "))print(titles)但是在这种情况下,我会从所有a标签中获取文本。我只需href要有"/title/***".
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

我猜你想要这样:


from bs4 import BeautifulSoup


html = '''<a href="/title/tt0110912/" title="Quentin Tarantino">

Pulp Fiction

</a>


<a href="/title/tt0137523/" title="David Fincher">

Fight Club

</a>


<a href="blablabla" title="Yet to Release">

Yet to Release

</a>


<a href="something" title="Movies">

Coming soon

</a>

'''


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


titles = []


for a in soup.select('a[href*="/title/"]',href=True):

    if a.text:

        titles.append(a.text.replace('\n'," "))

print(titles)

输出:


[' Pulp Fiction ', ' Fight Club ']


查看完整回答
反对 回复 2023-03-30
?
三国纷争

TA贡献1804条经验 获得超7个赞

您可以使用正则表达式来搜索属性的内容(在本例中为 href)。



查看完整回答
反对 回复 2023-03-30
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

1.) 要获取所有以 开头的<a>标签,您可以使用 CSS 选择器。href="/title/"a[href^="/title/"]


2.) 要去除标签内的所有文本,您可以使用.get_text()with 参数strip=True


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


out = [a.get_text(strip=True) for a in soup.select('a[href^="/title/"]')]

print(out)

印刷:


['Pulp Fiction', 'Fight Club']


查看完整回答
反对 回复 2023-03-30
  • 3 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信