Избегайте пробелов в значении класса при очистке в Python - PullRequest
0 голосов
/ 15 мая 2018

Я пытался сканировать некоторые данные с веб-сайта. Здесь я нашел пробел в значении класса на сайте, например:

<div class="Col No 3">
    <div class="row No 4"> 
    </div>
</div>

В этом случае я использовал:

files = bsObj.find_all("div", {"class":"row No 4"})
for file in files:
    print (file.get_text())

Я также использовал (.) Точечные символы в значении вместо пробелов ("row.No.4").

files = bsObj.find_all("div", {"class":"row.No.4"})
for file in files:
    print (file.get_text())

По-прежнему выдает ошибку.

1 Ответ

0 голосов
/ 15 мая 2018

Исходя из вашего синтаксиса и содержимого, я предполагаю, что вы используете пакет BeautifulSoup и хотите найти файлы по нескольким классам.

Использование .find_all():

files = bsObj.find_all("div", {"class":['row','No','4']})
for file in files:
    print (file.get_text())

С другой стороны, если вы выбираете селекторы, вам нужно использовать точку . для объединения нескольких классов:

Использование .select():

files = bsObj.select("div.row.No.4")
for file in files:
    print (file.get_text())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...