2017-02-17 8 views
0

Я читаю на веб-странице, используя beautifulSoup в python. Многие элементы - это промежутки, но с разными значениями для их атрибута класса. напримерПроверка наличия и атрибута и значения с помощью BeautifulSoup

Value1 = property.findChild("span", {"class" : "search-result-Val1"}).text 
Value2 = property.findChild("span", {"class" : "search-result-Val2"}).text 

Вопрос в том, если пользователь не ввести значение для VAL1 или val2 при сохранении их предмета, они не будут отображаться на странице результатов поиска, поэтому мне нужно проверить, если пролет тег существует, с атрибутом «класс» с определенным значением для этого атрибута, прежде чем я попытаюсь извлечь его значение.

Как я могу это сделать? Метод GetAttr() не помогает, поскольку он просто говорит мне, существует ли атрибут, но я не могу проверить значение этого атрибута, что является дифференцирующим фактором в этом случае.

+0

вы можете предоставить ссылку на страницу, которую вы пытаетесь, чтобы очистить? –

ответ

0

Для этого конкретного экземпляра вы ищете атрибут класса.

В этом случае вы можете сделать property.findChild("span")["class"], а затем проверить, содержит ли он один из классов, которые вы хотите.

0

использование list фильтра:

Если вы передаете в списке, Beautiful Soup позволит матч струнного против любого пункта в этом списке.

property.findChild("span", class_=["search-result-Val1","search-result-Val2"])