Как удалить теги с find_all в Beautifulsoup? - PullRequest
0 голосов
/ 24 сентября 2019

Мне удалось удалить текст из поиска, но при использовании find_all я получу ошибку.


equipmentType = category.find_all("div", {"class":"ExResult-details ExResult-equipmentType"}).text


print(equipmentType)`


`Traceback (most recent call last):
  File "scrape.py", line 17, in <module>
    equipmentType = category.find_all("div", {"class":"ExResult-details ExResult-equipmentType"}).text
  File "/home/bert/.local/lib/python2.7/site-packages/bs4/element.py", line 1578, in __getattr__
    "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()?" % key
AttributeError: ResultSet object has no attribute 'text'. You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?
`

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Из сообщения об ошибке: You're probably treating a list of items like a single item. Did you call find_all() when you meant to call find()?

То есть, find_all возвращает ResultSet, а ResultSet не имеет атрибута text.Может быть, попробуйте:

equipment_type = [item.text for item in category.find_all("div", {"class":"ExResult-details ExResult-equipmentType"})]
0 голосов
/ 24 сентября 2019

Ответ находится в последней строке трассировки:

ResultSet object has no attribute 'text'. You're probably treating a list of items like a single item.

find_all() возвращает набор.Что вы хотите сделать, это перебрать набор и получить текст каждого элемента:

equipment_list = category.find_all("div", {"class":"ExResult-details ExResult-equipmentType"})

for equipmentType in equipment_list:
    print(equipmentType.text)
...