@Penguinwtf

Как исправить ошибку none item.find при создании словаря?

Делаю свой первый парсинг, как можно понять, по очередному видео с ютуба. До момента добавления словарей все работает штатно, как только пытаюсь распределить весь найденный суп в словари туда записывается только "none", соответственно и функцию get не возможно использовать.
import requests
from bs4 import BeautifulSoup

URL = 'https://www.wowprogress.com/gearscore/?lfg=1&raids_week=&lang=ru&sortby=ts'
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36 OPR/75.0.3969.267', 'accept':'*/*'}

def get_html(url, params=None):
    r = requests.get(url, headers=HEADERS, params=params)
    return r

def get_content(html):
    soup = BeautifulSoup(html, 'html.parser')
    items = soup.findAll('tabel', class_='rating')
    #print(items)
    chars = []
    for item in items:
       chars.append({
            'nick': item.find('tr', class_='hint--bottom-right'),
            'server': item.find('div', class_='realm'),
            'link': item.find('a', class_='hint--bottom-right').get_text('href')

        })
        print(chars)

def parse():
    html = get_html(URL)
    if html.status_code == 200:
        get_content(html.text)
    else:
        print('error')

parse()


*разные параметры item.find для теста, на странице там везде 'a'*
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
table, а не tabel
Плюс, вы явно хотите найти только одну таблицу, и в ней уже искать tr.
А вообще, там таблица чуть поломанная, тег закрывается, не открывшись. Лучше в lxml переключить тогда.

Ну и по мелочи выбраны не те блоки явно.

def get_content(html):
    soup = BeautifulSoup(html, 'lxml')
    items = soup.find('table', class_='rating').find_all('tr')
    chars = []
    for item in items:
        chars.append({
            'nick': item.find('a', class_='hint--bottom-right').text,
            'server': item.find('a', class_='realm').text,
            'link': item.find('a', class_='hint--bottom-right').get('href')

        })
    print(chars)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы