Только учу Питон и в качестве первого проекта решил запарсить другой сайт.
По ходу кодинга возникло у меня 2 вопроса:
1. Как подключить одну функцию к другой (чтоб результат первой функции передался во вторую)?
2. Как правильно вывести общий результат работы этих двух функций?
До комментария
#!!!!—–>
код работает. Не могу правильно состыковать то, что идет ниже этого самого комментария.
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 cinemas_info(url): def basic_cinemas_info(url): '''Получаем Город, Название и Детальную_ссылку''' prepare(url) tree = prepare(url) for city in tree.xpath(".//div[@class='city-caption']"): for cinema in city.xpath("following-sibling::*[1]/li/a"): city1 = city.xpath("text()")[0] name1 = cinema.xpath("text()")[0] detailed_url = cinema.xpath("@href")[0] return city1, name1, detailed_url #!!!!-----> Не могу правильно подцепить нижнюю часть кода к верхней <------!!!!! def detailed_cinemas_info(): '''из basic_cinemas_info нужно получить "detailed_url" для дополучения нужной информации (Улицы, Телефона, Сайта)''' detailed_url = basic_cinemas_info(url)[2] #ВОПРОС: Как правильно получить detailed_url из def basic_cinemas_info(url)? prepare(detailed_url) tree = prepare(url) for street in tree.xpath(".//div[@class='address']"): street1 = street.xpath("text()")[0] for phone in tree.xpath(".//div[@class='phone']"): phone1 = phone.xpath("text()")[0] for website in tree.xpath(".//div[@class='website']/a"): website1 = website.xpath("@href")[0] return street1, phone1, website1 print (city1,name1,street1,phone1,website1) '''итог работы двух функций объединяем и выводим''' #ВОПРОС: Как правильно вывести объединенный результат функций basic_cinemas_info и detailed_cinemas_info? cinemas_info('http://vkino.com.ua/cinema/#!=')
Принцип парсинга “один-к многим”, т.е. на одной странице есть список всех кинотеатров с базовой инфой и дальше обращаемся к детальной странице каждого кинотеатра для получения доп инфы. Результат работы двух функций объединяем и выводим.
П.С. Может есть какой то метод и так будет правильней, вставить функцию detailed_cinemas_info прямо в цикл функции basic_cinemas_info?
Спасибо.
