Python проблема поиска Beautifulsoup - PullRequest
0 голосов
/ 06 января 2020

У меня проблемы с бс найти этот текст. Я думаю, это потому, что текст на странице имеет дополнительные кавычки вокруг него. Мне сказали, что это потому, что класс на самом деле пуст. Если это так, то какие-либо предложения о том, как я могу построить свой поиск? Фактический текст на сайте: <span class="" data-product-price="">

Мой код (я пробовал несколько вариантов): soup.find_all('span',{'class' : '" data-product-price="'})

Я также пытался просто делать обычный поиск, но я не делать это правильно. Любые предложения или я должен использовать что-то, кроме bs?

Отредактировано, чтобы включить полный код:

    import bs4
    import requests
    from bs4 import BeautifulSoup
    r=requests.get('https://www.gouletpens.com/products/twsbi-diamond-580- 
    fountain-pen-clear?variant=11884892028971')
    soup = bs4.BeautifulSoup(r.text, features="html.parser")
    print(soup)     
    #soup.find_all('span',{'class' : '" data-product-price="'})
    #soup.find_all('span',{'class' : 'data-product-price'})[0].text

1 Ответ

0 голосов
/ 06 января 2020

После просмотра URL вы можете выбрать цену с помощью селектора CSS:

import requests
from bs4 import BeautifulSoup

url = 'https://www.gouletpens.com/products/twsbi-diamond-580-fountain-pen-clear?variant=11884892028971'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')

print(soup.select_one('span[data-product-price]').get_text(strip=True))

Отпечатки:

$50.00

ИЛИ: с bs4 API (установите {'data-product-price':True} для поиска тегов с этим атрибутом независимо от значения в нем:

print(soup.find('span', {'data-product-price':True}).get_text(strip=True))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...