Как я могу очистить класс с определенным именем - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь очистить все классы с именем

all_posts = soup.findAll(class_='s-result-item celwidget')

, но проблема в том, что он обнуляется.

И если я удаляю celwidget и пробую это

all_posts = soup.findAll(class_='s-result-item')

он приходит с результатом, но затем включает оба класса

s-result-item celwidget

s-result-item aok-hidden

мне нужны только s-result-item celwidget данные

пожалуйста, помогите кому-нибудь

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Вы хотите сопоставить несколько случаев этого составного класса.Если вы используете селекторы css, вам нужно использовать select, а не select_one, так как select_one будет возвращать только первое совпадение

soup=BeautifulSoup(data,"lxml")
all_posts = soup.select('.s-result-item.celwidget')

Обратите внимание, что составные классы объединяются с помощью "."

0 голосов
/ 21 марта 2019

Используя модуль re вы можете найти.

import re
all_posts = soup.findAll(class_=re.compile("celwidget"))

Например:

from bs4 import BeautifulSoup
import re
data='''<html>
<div class="s-result-item celwidget">Text1</div>
<div class="s-result-item aok-hidden">Text2</div>
</html>'''
soup=BeautifulSoup(data,"html.parser")
all_posts = soup.findAll(class_=re.compile('celwidget'))
for post in all_posts:
  print(post.text)

Вариант 2 :

from bs4 import BeautifulSoup
data='''<html>
<div class="s-result-item celwidget">Text1</div>
<div class="s-result-item aok-hidden">Text2</div>
</html>'''
soup=BeautifulSoup(data,"html.parser")
all_posts = soup.find_all(class_="s-result-item")
print(all_posts[0].text)

вариант 3: Использовать select_one

from bs4 import BeautifulSoup
data='''<html>
<div class="s-result-item celwidget">Text1</div>
<div class="s-result-item aok-hidden">Text2</div>
</html>'''
soup=BeautifulSoup(data,"html.parser")
all_posts = soup.select_one('.s-result-item.celwidget')
print(all_posts.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...