Хочу запарсить сайт с расписанием сеансов кинотеатров.
В конце кода есть условие if (отмечено комментарием), которое на данный момент всем сеансам присваивает 3Д.
Помогите пожалуйста решить 2 проблемы:
1) исправить код, чтоб он правильно проверял наличие <span class=“show-format”>3D</span> на этой странице (вполне возможно, что этот пунк я написал правильно, а проблема только во втором пункте)
2) чтоб 3Д присваивалось только тому сеансу, который реально идет в 3Д, а не всем в подряд сеансам (я видимо или не правильно условие if написал или\и не правильно его разместил в цикле)
import requests from lxml.html import fromstring def prepare(url): url = requests.get(url) tree = fromstring(url.text) tree.make_links_absolute(url.url) return tree def detailed_cinemas_films(url): showtimes_tab_url = '/showtimes/#!=&cinema-section=%2Fshowtimes%2F' tree = prepare(url + showtimes_tab_url) for film in tree.xpath('//div[@class="content"]'): film_name = film.xpath('.//a[@class="navi"]/text()')[0] for dates in film.xpath('.//li[contains(@class,"showtimes-day sdt")]'): film_dates = dates.xpath('.//div[@class="date"]/text()')[0] for times in dates.xpath('.//ul[@class="showtimes-day-block"]/li/a'): film_times = times.xpath('text()')[0] # Проблема: всем сеансам присваивает 3Д if dates.find('.//span[@class="show-format"]') is None: pass else: is3D = dates.xpath('.//span[@class="show-format"]/text()') print(film_name, film_dates, film_times, is3D) detailed_cinemas_films('http://vkino.com.ua/cinema/kinoodessa-kinostancia')
Сейчас формат результата такой:
Терминатор: Генезис 5 июля, сегодня 21:00
Терминатор: Генезис 5 июля, сегодня 21:50
Терминатор: Генезис 6 июля, понедельник 10:10
Спасибо.