#python #web-scraping #beautifulsoup
#python #очистка веб-страниц #beautifulsoup
Вопрос:
У меня есть HTML-код ниже, я хочу получить доступ к «sisa 1» .. но всегда терпел неудачу, кто-нибудь может помочь?
<dd>
<div class="product-list__stock--branch">
<div data-id="2" data-stock="1" class="product-list__stock product-
list__stock--ready">
<b>Online / COD</b>
<span>Stok tersedia</span>
</div>
<div data-id="3" data-stock="1" class="product-list__stock product-
list__stock--ready">
<b>Toko Semarang</b>
<span>Stok tersedia</span>
<span class="tag2 tag--warning" style="color:white;">Sisa 1</span>
</div>
<div class="product-list__stock--available-branch-trigger product-
list__stock--available-branch-trigger--sold-out">Tidak tersedia di
toko lain.
</div>
</div>
</dd>
Комментарии:
1. Теги Div не совпадают, вы уверены, что HTML указан правильно?
2. да, я выбросил его из интернет-магазина в Индонезии
3.
let x = document.querySelector("span.tag2.tag--warning").innerText;
4. Результат по-прежнему отсутствует
Ответ №1:
Вот решение с BeautifulSoup:
div = soup.find("div", {"data-id": "3"})
Это возвращает div, содержащий Sisa 1. Чтобы получить фактический текст «Sisa 1»:
text = div.contents[2].text
Комментарии:
1. Я попробовал это, результат здесь отсутствует мой скрипт: link = requests.get(‘ jakartanotebook.com /… soup2 = BeautifulSoup(ссылка, ‘lxml’) div = soup2.find(«div», {«data-id»: «3»}) попробуйте: text = div.содержимое [2]. текст, за исключением исключения в виде e: text = None text=»Не найден» печать (текст) … Извините, я не знаю, как писать в этом поле для комментариев…
Ответ №2:
Вы можете использовать класс для доступа к элементу следующим образом:
from bs4 import BeautifulSoup
html = """
<dd>
<div class="product-list__stock--branch">
<div data-id="2" data-stock="1" class="product-list__stock product-
list__stock--ready">
<b>Online / COD</b>
<span>Stok tersedia</span>
</div>
<div data-id="3" data-stock="1" class="product-list__stock product-
list__stock--ready">
<b>Toko Semarang</b>
<span>Stok tersedia</span>
<span class="tag2 tag--warning" style="color:white;">Sisa 1</span>
</div>
<div class="product-list__stock--available-branch-trigger product-
list__stock--available-branch-trigger--sold-out">Tidak tersedia di
toko lain.
</div>
</div>
</dd>
"""
soup = BeautifulSoup(html, 'html.parser')
all_rows = soup.find(class_="tag2")
print(all_rows.text)
Комментарии:
1. @NugrohoMoristianto Вы скопировали точно такой же код?
2. вот мой код: link = requests.get(‘ jakartanotebook.com /… soup2 = BeautifulSoup(ссылка,’lxml’) all_rows = soup2.find(class_=»tag2″) попробуйте: text1 = all_rows.text за исключением исключения в виде e: text1 = Нет text1=»Не найдено» печать (text1)
3. @NugrohoMoristianto Можете ли вы отправить ссылку на код (не можете скопировать его).
4. [ссылка] jakartanotebook.com /…
5. @NugrohoMoristianto У каждого веб-сайта разные теги