如何使用 Beautiful 使用 select() 和特定的 CSS 选择器从网站中提取文本内容
How to extract Text Content from a Web site using Beautiful using select() and specific CSS Selectors
我正在学习使用 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(),因为该页面具有这种复杂的结构。所以我将 select() 函数与 CSS select 或:
一起使用
soup.select("#preview-prediction > .home > .team-name > .team-link")
最后一个 class team-link 包含我需要提取的文本。如何执行此任务?
这将创建一个包含所选标签的所有内容的列表。
>>> [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'
我正在学习使用 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(),因为该页面具有这种复杂的结构。所以我将 select() 函数与 CSS select 或:
一起使用 soup.select("#preview-prediction > .home > .team-name > .team-link")
最后一个 class team-link 包含我需要提取的文本。如何执行此任务?
这将创建一个包含所选标签的所有内容的列表。
>>> [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'