Используйте get_text () только для одного класса HTML - Python, BeautifulSoup - PullRequest
0 голосов
/ 20 октября 2018

Я пытаюсь получить доступ к единственному тексту в одном классе HTML.Я пытался применить к документации BeautifulSoup, но я всегда получаю одно и то же сообщение об ошибке или все элементы в этом теге.

Мой code.py

from urllib.request import urlopen
from bs4 import BeautifulSoup
import requests
import re

url = "https://www.auchandirect.pl/auchan-warszawa/pl/pepsi-cola-max-niskokaloryczny-napoj-gazowany-o-smaku-cola/p-98502176"
r = requests.get(url, headers={'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'}, timeout=15)
html = urlopen(url)
soup = BeautifulSoup(html, 'lxml')
type(soup)

products_links = soup.findAll("a", {'class' : 'current-page'})

print(products_links)

В результатах мне нужен только этот «Макс.документация (print (products_links.get_text ())) Pycharm возвращает:

ResultSet object has no attribute '%s'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?"

Как правильно извлечь текст из "текущей страницы"?Почему функция не возвращает текст в тегах?Какая разница в получении доступа к классу с использованием 'findAll ("a", class _ = "current-page") "относительно" findAll ("a", {' class ':' current-page '})', который он даетте же результаты?

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 20 октября 2018

findAll возвращает список элементов, найденных в вашем определенном теге.Представьте, что если есть несколько одинаковых тегов, он возвращает список из нескольких совпадающих тегов.

Не должно быть никаких различий, используете ли вы findAll("a", class_="current-page") или передаете dict с несколькими аргументами {'class' : 'current-page'}.Я могу ошибаться, но я считаю, что некоторые из этих методов были унаследованы от более ранних версий.

Вы можете извлечь текст из возвращенного объекта, выбрав элемент и получив текстовый атрибут, показанный ниже:

products_links = soup.findAll("a", {'class' : 'current-page'}, text = True)
print(products_links[0].text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...