使用BeautifulSoup删除具有多个相同类名的数据

2024-04-24 14:57:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用房地产网站练习抓取,我想抓取最近销售的所有地址。例如,网站HTML的一部分如下所示: url=https://www.compass.com/agents/irene-vuong/

<div class="profile-active-listings" role="tabpanel" id="active-listings-sales">
    <div class="card-content">
      <a class="card-title" href="/listing" data-tn="label-address"> 111 East 35th </a>
                                            ........
<div class="textIntent-headline1"> Recent Sales</div>
    <div class="card-content">
      <a class="card-title" href="/morelisting" data-tn="label-address"> East 4th </a>

我正在尝试使用以下代码访问所有地址:

for i in range(0, 30):
    h = soup.findAll('a', {'class':'card-title'})[i]
    print(h)

但是,我得到一个错误:

IndexError: list index out of range

我得到了前几个地址,但就在“最近的销售”之前。 它只获取第一部分的地址,而不获取整个网站的地址。 如何获取所有地址


Tags: divdatatitle网站address地址contentcard
1条回答
网友
1楼 · 发布于 2024-04-24 14:57:50

findAll方法返回与搜索条件匹配的所有元素的列表

在您的例子中,它返回一个长度为2的列表

然后,您将遍历0-29,并在length2列表中查找这些索引

这就是你的错误

您的代码应该更像:

for x in soup.findAll('a', {'class':'card-title'}):
  print(x)

相关问题 更多 >