Как получить значение «275,47» (BeautifulSoup, Python3) - PullRequest
0 голосов
/ 27 апреля 2018

Я новичок в изучении веб-страниц, поэтому мне нужна ваша помощь. У меня есть этот HTML-код (посмотрите на изображение ), и я хочу получить это конкретное значение -> "275,47". Я записал этот код, но что-то идет не так ... Пожалуйста, помогите мне! :)

import requests
from bs4 import BeautifulSoup as bs

url="https://www.skroutz.gr/s/11504255/Apple-iPhone-SE-32GB.html"
page=requests.get(url)
soup=bs(page.text,"html.parser")

D={"href":"/products/show/30871132","rel":"nofollow","class":"js-product- 
   link","data-func":"trigger_shop_uservoice","data-uservoice- 
   pid":"30871132","data-append-element":".shop-details","data-uservoice- 
   shopid":"1913","data-type":"final_price"}

value=soup.find_all("a",attrs=D)
print(value.string)

1 Ответ

0 голосов
/ 27 апреля 2018

Итак, вы близко! Ваша ошибка генерируется, потому что переменная "value" не имеет атрибута с именем string. Значение в данный момент представляет собой список элементов. Вы хотите перебрать все якоря и найти тот, который ищете.

Мое предложение:

import requests
from bs4 import BeautifulSoup as bs

url="https://www.skroutz.gr/s/11504255/Apple-iPhone-SE-32GB.html"
page=requests.get(url)
soup=bs(page.text,"html.parser")

value=soup.find_all("a")

for item in value:
    if '30871132' in item.get('href'):
        print item.text

item будет текущим тегом привязки, который мы повторяем в цикле.

Мы можем получить его атрибут href (или любой атрибут), используя метод .get.

Затем мы проверяем, есть ли «308711332» в href, и если это так, распечатаем его текст.

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