Почему в парсинге сайта мне выводит -1?

делал парсер для сайта на python. юзал библиотеки BeautifulSoup и requests. захотел вывести названия фильмов, но выдает это. не получается вытащить текст, ибо '-1' это тип данных int, и он конфликтует с str. -1 Проклятый путь -1 Унесенные призраками -1 Адаптация -1

код:

from bs4 import BeautifulSoup
import requests
URL = 'https://www.film.ru/movies'
site = 'https://www.film.ru'
res = requests.get(URL).content
soup = BeautifulSoup(res, 'lxml')

a = soup.find('div', class_ = 'rating infinite_scroll')

for i in a:
    strong = i.find('strong')
    print (strong)

в чем ошибка?


Ответы (2 шт):

Автор решения: Vadim.Sharoikin

наверное не лучшее решение но работает для данного случая(а почему выводятся цифры вам написали в комментариях)

from bs4 import BeautifulSoup
import requests
URL = 'https://www.film.ru/movies'
res = requests.get(URL).content
soup = BeautifulSoup(res, 'lxml')

a = soup.find('div', class_ = 'rating infinite_scroll')

for i in a:
    strong = i.find('strong')
    if type(i.find('strong'))!=int:
        print(strong.get_text())
→ Ссылка
Автор решения: gil9red

Можно использовать css-селектор div.rating.infinite_scroll > a, чтобы описать получения тегов <a>, которые напрямую вложены (для этого указывается >) в <div> с class="rating infinite_scroll", а там будет просто получить ссылку на фильм, на постер и т.п.

Пример:

from urllib.parse import urljoin
from bs4 import BeautifulSoup
import requests

URL = 'https://www.film.ru/movies'
rs = requests.get(URL)
root = BeautifulSoup(rs.content, 'html.parser')

for a in root.select('div.rating.infinite_scroll > a'):
    title = a.strong.get_text(strip=True)
    url = urljoin(rs.url, a['href'])
    print(title, url)

# Проклятый путь https://www.film.ru/articles/semeynaya-drama-s-tommi-ganom-v-ruke
# Унесенные призраками https://www.film.ru/articles/klassika-anime-unesennye-prizrakami
# Адаптация https://www.film.ru/articles/lukavoe-naglyadnoe-posobie-po-ekranizacii
# ...
# Первый мститель: Другая война https://www.film.ru/articles/so-schitom-ili-na-schite
→ Ссылка