@RG2

Почему парсер сайта kinopoisk выдаёт пустой список?

код, должен спарсировать названия 250 лучших картин по версии сайта kinopoisk.
import requests
from bs4 import BeautifulSoup
import re
import os
from urllib.request import urlopen
import json
from urllib.parse import unquote
import asposecells
import jpype
from openpyxl import Workbook
import pandas as pd
import mysql.connector
 
import warnings
warnings.filterwarnings("ignore")
 
url = 'https://www.kinopoisk.ru/lists/movies/top250/'
response = requests.get(url, verify=False)
soup = BeautifulSoup(response.text, 'lxml')
movies = []
soup = BeautifulSoup(response.content, 'html.parser')
for movie in soup.select(".styles_root__ti07r"):
    name = movie.select_one(".base-movie-main-info_mainInfo__ZL_u3:not(:last-child)").text
    movies.append({
        'Название': name
    })
with open('out.json', 'w', encoding='utf-8') as f:
    json.dump(movies, f, indent=4, ensure_ascii=False)
    
df = pd.read_json('./out.json')


Но вместо этого он выводит пустой список
[]
В чём причина?
Заранее благодарю за помощь.
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
AshBlade
@AshBlade
Просто хочу быть счастливым
В чём причина?


Внутри каждого блока .styles_root__ti07r только один элемент .base-movie-main-info_mainInfo__ZL_u3, а ты указал не брать последний :not(:last-child). Значит 1 - 1 = 0

На будущее: если видишь странные символы, по типу _ZL_u3 или ti07r, то не полгайся на них - это автосгенерированные классы и в будущем их названия изменятся и этот код сломается
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы