我有點業余使用BeautifulSoup. 在我感興趣的物件中運行后soup.find_all('ul',class_='tags tags--project'),我獲得以下輸出:
<ul class="tags tags--project">
<li><a href="/processes/mes-idees-pour-mon-quartier/f/472/budgets/3/projects?filter[category_id][]=80" title="Filtrer les résultats de la catégorie : Nature en ville"><span class="show-for-sr">Filtrer les résultats de la catégorie : Nature en ville</span><span aria-hidden="true">Nature en ville</span></a></li>
<li><a href="/processes/mes-idees-pour-mon-quartier/f/472/budgets/3/projects?filter[scope_id][]=71" title="Filtrer les résultats pour le secteur : 4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux"><span class="show-for-sr">Filtrer les résultats pour le secteur : 4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux</span><span aria-hidden="true">4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux</span></a></li>
</ul>, <ul class="tags tags--project">
<li><a href="/processes/mes-idees-pour-mon-quartier/f/472/budgets/3/projects?filter[category_id][]=80" title="Filtrer les résultats de la catégorie : Nature en ville"><span class="show-for-sr">Filtrer les résultats de la catégorie : Nature en ville</span><span aria-hidden="true">Nature en ville</span></a></li>
<li><a href="/processes/mes-idees-pour-mon-quartier/f/472/budgets/3/projects?filter[scope_id][]=66" title="Filtrer les résultats pour le secteur : 2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie"><span class="show-for-sr">Filtrer les résultats pour le secteur : 2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie</span><span aria-hidden="true">2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie</span></a></li>
</ul>,........
我有興趣提取之后的物件,title="...."但我不確定最有效的方法是什么。因為他們在里面,<li>所以我嘗試了類似的東西,soup.find_all('ul',class_='tags tags--project').find_all('li')但這不起作用。你有什么建議嗎?
PS:從上面的例子可以看出,通常每個里面ul都有四個title="....",但后兩個只是技術上的重復,我只需要保留前兩個。
uj5u.com熱心網友回復:
如果我理解正確,您想從以下不同<span>的 s中獲取文本<ul>:
from bs4 import BeautifulSoup
html_doc = """\
<ul >
<li>
<a href="/processes/mes-idees-pour-mon-quartier/f/472/budgets/3/projects?filter[category_id][]=80" title="Filtrer les résultats de la catégorie : Nature en ville">
<span >Filtrer les résultats de la catégorie : Nature en ville</span>
<span aria-hidden="true">Nature en ville</span>
</a>
</li>
<li>
<a href="/processes/mes-idees-pour-mon-quartier/f/472/budgets/3/projects?filter[scope_id][]=71" title="Filtrer les résultats pour le secteur : 4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux">
<span >Filtrer les résultats pour le secteur : 4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux</span>
<span aria-hidden="true">4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux</span>
</a>
</li>
</ul>
<ul >
<li>
<a href="/processes/mes-idees-pour-mon-quartier/f/472/budgets/3/projects?filter[category_id][]=80" title="Filtrer les résultats de la catégorie : Nature en ville">
<span >Filtrer les résultats de la catégorie : Nature en ville</span>
<span aria-hidden="true">Nature en ville</span>
</a>
</li>
<li>
<a href="/processes/mes-idees-pour-mon-quartier/f/472/budgets/3/projects?filter[scope_id][]=66" title="Filtrer les résultats pour le secteur : 2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie">
<span >Filtrer les résultats pour le secteur : 2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie</span>
<span aria-hidden="true">2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie</span>
</a>
</li>
</ul>"""
soup = BeautifulSoup(html_doc, "html.parser")
for ul in soup.select("ul.tags.tags--project"):
for span in ul.select("span"):
print(span.text)
print("-" * 80)
印刷:
Filtrer les résultats de la catégorie : Nature en ville
Nature en ville
Filtrer les résultats pour le secteur : 4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux
4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux
--------------------------------------------------------------------------------
Filtrer les résultats de la catégorie : Nature en ville
Nature en ville
Filtrer les résultats pour le secteur : 2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie
2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie
--------------------------------------------------------------------------------
如果你想要每一秒,你可以使用[::2]:
for ul in soup.select("ul.tags.tags--project"):
for span in ul.select("span")[::2]: # <-- use [::2] here
print(span.text)
print("-" * 80)
印刷:
Filtrer les résultats de la catégorie : Nature en ville
Filtrer les résultats pour le secteur : 4.2 - Jolimont / Soupetard / Roseraie / Gloire / Gramont / Amouroux
--------------------------------------------------------------------------------
Filtrer les résultats de la catégorie : Nature en ville
Filtrer les résultats pour le secteur : 2.4 - Casselardit / Fontaine-Bayonne / Cartoucherie
--------------------------------------------------------------------------------
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520260.html
標籤:html细绳网络美丽的汤
上一篇:從字串生成資料框
下一篇:如何用R中的采樣字符替換通配符
