我试图从一个网站上解析HTML,其中有多个元素具有相同的类ID;我设法弄到一件东西,但不是全部
下面是我试图解析的一些HTML:
<h1>Synonymes travail</h1>
<div class="container-bloc1">
<strong> Nom</strong>
<br/>
-
<i><a class="lien2" href="/fr/accouchement.html"> accouchement </a></i>
:
<a class="lien3" href="/fr/gésine.html"> gésine</a>
<br/>
-
<i> <a class="lien2" href="/fr/action.html"> action </a></i>
:
<a class="lien3" href="/fr/activité.html"> activité</a>
,
<a class="lien3" href="/fr/labeur.html"> labeur</a>
</div>
在Python中,我这样写:
from bs4 import BeautifulSoup
import requests
import csv
source = requests.get("http://www.synonymes.net/fr/travail.html").text
soup = BeautifulSoup(source, "lxml")
for synonyme in soup.find_all("div", class_="container-bloc1"):
print(synonyme)
synonymesdumot = synonyme.find("a", class_="lien2").text
print(synonymesdumot)
for synonymesautres in synonyme.find_all("a", class_="lien3").text:
print(synonymesautres)
第一部分工作正常,因为HTML文件中只有一个“lien2”。我也可以为“lien3”做同样的事情,但我只得到一个项目,我想要所有的项目
我做错什么了?谢谢你们的帮助
如果按问题中的方式编写代码,则会遇到一个
AttributeError
,因为.find_all()
的输出是一个没有属性text
的标记集合(更具体地说是ResultSet
);但是它的每一个元素,都是type bs4.Element.Tag
的。因此,您需要为for循环中的每个标记获取text
属性:输出:
相关问题 更多 >
编程相关推荐