BeautifulSoup - AttributeError: у объекта 'NoneType' нет атрибута 'findAll' - PullRequest
0 голосов
/ 08 апреля 2020

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

import requests
from bs4 import BeautifulSoup
import urllib3
urllib3.disable_warnings()

url = 'https://csgostash.com/weapon/Butterfly+Knife'
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')

results = soup.find(id="row")

job_elems = results.findAll('section', class_="well result-box nomargin")
for job_elem in job_elems:
    title_elem = jobelem.find('h3', class_='a')
    print(title_elem.text.strip())

Сообщение об ошибке

job_elems = results.findAll ('section', class_ = " well-box-nomargin ") AttributeError: у объекта 'NoneType' нет атрибута 'findAll'

1 Ответ

1 голос
/ 08 апреля 2020

Глядя на HTML для страницы, которую вы пытаетесь очистить, видно, что ни у одного элемента нет id="row"; следовательно, вы получаете ошибку, которую вы не можете вызвать findAll на None.

. Вы можете пропустить этот шаг и go сразу найти 'div' (вместо 'section') элементов с class_='well result-box nomargin':

job_elems = soup.find_all('div', class_="well result-box nomargin")             
for job_elem in job_elems:                                                      
    title_elem = job_elem.find('a')                                             
    if title_elem:                                                              
        print(title_elem.text.strip())

Вывод:

★ (Vanilla)
Marble Fade
Doppler
Tiger Tooth
Damascus Steel
Ultraviolet
Rust Coat
Fade
Slaughter
Crimson Web
Night
Case Hardened
Blue Steel
Boreal Forest
Stained
Forest DDPAT
Urban Masked
Scorched
Safari Mesh

Обратите внимание, что в вашем коде есть несколько ошибок, включая jobelem вместо job_elem. Вы также пытаетесь получить текст элемента h3, хотя вы на самом деле ищете элемент a, вложенный в него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...