Очистка нескольких данных с одним и тем же именем класса с помощью BeautifulSoup - PullRequest
0 голосов
/ 04 марта 2020

Я недавно писал здесь, но мне не удалось решить проблему, поэтому я спрашиваю снова. Я пытаюсь очистить этот сайт для раздела «Последние продажи» (все адреса): https://www.compass.com/agents/irene-vuong/

Мой код выглядит так:

listings = []
for item in soup.findAll('a', {'class':'uc-listingCard-title'}):
    listings.append(item.get_text(strip=True))

print(listings)    

Мой вывод:

['256-258 Wyckoff Street', '1320 Glenwood Road', '1473 East 55th Street', '145 Winter Avenue', '25-02 Brookhaven Avenue']

Однако ожидается, что будет:

['256-258 Wyckoff Street', '1320 Glenwood Road', '1473 East 55th Street', '145 Winter Avenue', '25-02 Brookhaven Avenue', '352 94th Street', '1754 West 12th Street', '2283 E 23rd st', '2063 Brown Street, '3423 Avenue U', '2256 Stuart Street']

, который содержит все адреса, так как имя класса совпадает с

<a class="uc-listingCard-title" href="`````" data-tn="listingCard-label-address"> adress here </a>

Я надеваю Я не понимаю, почему мой код получает только первую часть, но не все адреса, когда он имеет одно и то же имя класса.

Заранее благодарен за любую помощь.

++++ С предложениями:

for item in soup.findAll('div', attrs={'class': 'uc-listingCard-content'}):
    new = item.find('a', attrs={'class': 'uc-listingCard-title'})
    print(new.text)

Я по-прежнему получаю только текущие списочные адреса, но НЕ ВСЕ адреса.

1 Ответ

0 голосов
/ 04 марта 2020

попробовать:

from bs4 import BeautifulSoup

url = 'https://www.compass.com/agents/irene-vuong/'
url = requests.get(url)
tags = BeautifulSoup(url.text, 'html')
smaple_list=[]
for tag in tags.findAll('div', attrs={'class': 'uc-listingCard-content'}):
    new_tag = tag.find('a', attrs={'class': 'uc-listingCard-title'})
    print(new_tag.text)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...