我正在学习使用Python和BeautifulSoup从网站中提取内容。
这是HTML结构:
<div id="preview-prediction" class="two-cols rc-b rc-r">
<span style="position: absolute; top: 0.5em; left: 1em; color: #808080;">Prediction: </span>
<div class="home">
<div class="team-name">
<img src="http://164.177.157.12/img/teams/13.png" class="team-emblem">
<a href="/Teams/13" class="team-link">Arsenal</a>
</div>
<span class="predicted-score">2</span>
<div class="clear"></div>
</div>
<div class="away">
<span class="predicted-score">1</span>
<div class="team-name">
<a href="/Teams/26" class="team-link">Liverpool</a>
<img src="http://164.177.157.12/img/teams/26.png" class="team-emblem">
</div>
<div class="clear"></div>
</div>
</div>
我想从页面中的特定标签中提取确切的文本。我不能使用find_all()或find(),因为页面具有这种复杂的结构。所以我正在使用带有CSS选择器的select()函数:
soup.select("#preview-prediction > .home > .team-name > .team-link")
最后一个类团队链接包含我需要提取的文本。如何执行此任务?
答案 0 :(得分:1)
这将创建所选标签的所有内容列表。
>>> [i.text for i in soup.select('#preview-prediction > .home > .team-name > .team-link')]
['Arsenal']
或强>
这将打印第一个选定标签的内容。
>>> soup.select('#preview-prediction > .home > .team-name > .team-link')[0].text
'Arsenal'