Как узнать цену с этой страницы с помощью Beautiful soup? - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь узнать цену (т.е. 152 доллара) на этой странице . Я пробовал разные комбинации тегов в методе find_all, но все, что я получил, - это пустой список. Что я делаю не так?

u = 'https://www.dianeslingerie.com/product/serie-piana-short-sleeve-tunic-by-mey/'
r = requests.get(url)
c = r.content
soup = BeautifulSoup(c, "html.parser")
soup.find_all('div', {'class':'summary-container'})

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Это должно делать то, что вы хотите:

import requests
from bs4 import BeautifulSoup

url = 'https://www.dianeslingerie.com/product/serie-piana-short-sleeve-tunic-by-mey/'

r = requests.get(url)

soup = BeautifulSoup(r.text, "html.parser")

price = soup.find('span', {'class': 'woocommerce-Price-amount amount'})

print(price.text)

Для этого вы можете проверить страницу и найти класс, идентификатор или тег html, который является уникальным для объекта. вы хотите соскрести.

В этом случае класс woocommerce-Price-amount amount отображается только в цене страницы: Screenshot of the page showing the html tags

Как мы видим, это находится внутри тега span, поэтому мы используем его вместе с классом, который мы нашли ранее, и получаем следующий результат:

$152.00
0 голосов
/ 08 мая 2020
import bs4
import requests
u = 'https://www.dianeslingerie.com/product/serie-piana-short-sleeve-tunic-by-mey/'
r = requests.get(u)
c = r.content
soup = bs4.BeautifulSoup(c, "html.parser")
price = soup.find("span", {"class": "woocommerce-Price-amount amount"})
print(price.get_text()) # $152.00
...