Получение данных из нескольких диапазонов в основном классе диапазона с помощью BeautifulSoup - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь очистить следующий код html:

<span class="double-line-ellipsis">
 <span>
  ₹ 2800 for 2 (approx)
 </span>
 <span>
  |
 </span>
 <a data-w-onclick="stopClickPropagation|w1-restarant" href="/Bangalore-restaurants/cantonese-cuisine">
  Cantonese
 </a>
 <span>
  ,
 </span>
 <a data-w-onclick="stopClickPropagation|w1-restarant" href="/Bangalore-restaurants/chinese-cuisine">
  Chinese
 </a>
</span>

Итак, мое требование: мне нужно 2800 рупий за 2 (приблизительно), извлекаемых отдельно, и кантонский, китайский извлекаемые отдельно.

Но когда я использую код ниже:

det = soup.find('span', attrs={'class': 'double-line-ellipsis'})
        print(det.text)

, я собираю все вместе, например «2800 ₹ за 2 (приблизительно) | Кантонский, китайский», что затрудняет копирование информации на выделитесь в разных столбцах, таких как цена и кухня.

Я новичок в этом, может кто-нибудь, пожалуйста, помогите !!

1 Ответ

0 голосов
/ 09 мая 2020

Попробуйте что-нибудь в этом роде:

price = soup.select_one('span[class="double-line-ellipsis"] span').text.strip()
langs = soup.select('a[data-w-onclick="stopClickPropagation|w1-restarant"]')
print(price)
for lang in langs:
    print(lang.text.strip())

Вывод:

₹ 2800 for 2 (approx)
Cantonese
Chinese
...