Как найти элементы по классу - PullRequest
320 голосов
/ 18 февраля 2011

У меня проблемы с анализом HTML-элементов с атрибутом "class" с помощью Beautifulsoup.Код выглядит так:

soup = BeautifulSoup(sdata)
mydivs = soup.findAll('div')
for div in mydivs: 
    if (div["class"] == "stylelistrow"):
        print div

Я получаю сообщение об ошибке в той же строке "после" завершения сценария

File "./beautifulcoding.py", line 130, in getlanguage
  if (div["class"] == "stylelistrow"):
File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 599, in __getitem__
   return self._getAttrMap()[key]
KeyError: 'class'

Как мне избавиться от этой ошибки?

Ответы [ 13 ]

0 голосов
/ 13 июля 2019

у меня сработало следующее

a_tag = soup.find_all("div",class_='full tabpublist')
0 голосов
/ 06 июня 2019

Начиная с BeautifulSoup 4+,

Если у вас есть одно имя класса, вы можете просто передать имя класса в качестве параметра, например:

mydivs = soup.find_all('div', 'class_name')

Или, если у вас более одногоИмена классов, просто передайте список имен классов в качестве параметра, например:

mydivs = soup.find_all('div', ['class1', 'class2'])
0 голосов
/ 23 мая 2019

Это должно работать:

soup = BeautifulSoup(sdata)
mydivs = soup.findAll('div')
for div in mydivs: 
    if (div.find(class_ == "stylelistrow"):
        print div
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...