Я пытаюсь сканировать фильм на сайте. Нет ошибки, но нет результата Там нет iframe. И я выбираю выбрать место через хром> F12> Копировать> Селектор копирования
Ссылка на сайт: CGV фильм
Элемент, который я выбираю
import requests from bs4 import BeautifulSoup import json import os ## python file location BASE_DIR = os.path.dirname(os.path.abspath(__file__)) req = requests.get('http://ticket.cgv.co.kr/Reservation/Reservation.aspx?MOVIE_CD=&MOVIE_CD_GROUP=&PLAY_YMD=&THEATER_CD=&PLAY_NUM=&PLAY_START_TM=&AREA_CD=&SCREEN_CD=&THIRD_ITEM=') html = req.text soup = BeautifulSoup(html, 'html.parser') movie_titles = soup.select( '#movie_list > ul > li > a > span.text' ) data = {} for title in movie_titles: data = title.text + "\n" with open(os.path.join(BASE_DIR, 'result.json'), 'w+') as json_file: json.dump(data, json_file)
Данные, которые вы хотите, загружаются динамически. Используйте такой метод, как селен, например
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC url = 'http://ticket.cgv.co.kr/Reservation/Reservation.aspx?MOVIE_CD=&MOVIE_CD_GROUP=&PLAY_YMD=&THEATER_CD=&PLAY_NUM=&PLAY_START_TM=&AREA_CD=&SCREEN_CD=&THIRD_ITEM=' driver = webdriver.Chrome() driver.get(url) data = [item.text for item in WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#movie_list > ul > li > a > span.text")))] print(data)
Вы можете сократить селектор CSS до
#movie_list .text