Как сделать, чтобы код выводил названия в столбик, а не просто списком?
from bs4 import BeautifulSoup as Soup
import requests
def page_proc(page: Soup) -> list:
news_headers = []
for header in page.find_all('h4', {'class': 'media-heading'}):
news_headers.append(header.text.strip())
return news_headers
def sandbox(base_url: str) -> list:
headers = []
with requests.Session() as session:
first_page = Soup(session.get(base_url).content, 'html.parser')
pages_qty = int(first_page.find('li', {'class': 'pager-last'}).a['href'].rpartition('=')[-1])
headers.extend(page_proc(first_page))
pg = Soup(session.get(base_url).content, 'html.parser')
headers.extend(page_proc(pg))
return headers
if __name__ == '__main__':
print(sandbox('http://hkotso.ru/novosti'))
Как сделать, чтобы код выводил названия в столбик, а не просто списком?
Вот что он выводит:
['Гигиена при гриппе, коронавирусной инфекции и других ОРВИ', 'Стань волонтёром Конституции!', 'Внимание, вакансия', '«В служении верном Отчизне клянусь»', 'Информационная встреча с представителями воинской части № 23227', 'Информационная встреча с представителями воинской части', 'Деловая игра "Собеседование с работодателем"', 'Предложение работы в воинской части', 'Итоги краевого конкурса профессионального мастерства', 'Информационная встреча и презентация «Поискового движения России»', 'Классный час "Великие женщины"', 'Спортивный праздник, приуроченный ко всемирному женскому дню', 'Бинарный урок на тему: "Классификация, ассортимент, пищевая ценность, рецептуры приготовления супов сложного приготовления"', 'Ознакомительная экскурсия по корпоративно-отраслевому музею АО «Газпром газораспределение Дальний Восток»', 'Открытие фотовыставки «Заповедники Болонского международного водно-болотного угодья»', 'Гигиена при гриппе, коронавирусной инфекции и других ОРВИ', 'Стань волонтёром Конституции!', 'Внимание, вакансия', '«В служении верном Отчизне клянусь»', 'Информационная встреча с представителями воинской части № 23227', 'Информационная встреча с представителями воинской части', 'Деловая игра "Собеседование с работодателем"', 'Предложение работы в воинской части', 'Итоги краевого конкурса профессионального мастерства', 'Информационная встреча и презентация «Поискового движения России»', 'Классный час "Великие женщины"', 'Спортивный праздник, приуроченный ко всемирному женскому дню', 'Бинарный урок на тему: "Классификация, ассортимент, пищевая ценность, рецептуры приготовления супов сложного приготовления"', 'Ознакомительная экскурсия по корпоративно-отраслевому музею АО «Газпром газораспределение Дальний Восток»', 'Открытие фотовыставки «Заповедники Болонского международного водно-болотного угодья»']
Ответы (2 шт):
Попробуйте так:
for x in sandbox('http://hkotso.ru/novosti'):
print(x)
Еще можно так:
print(*sandbox('http://hkotso.ru/novosti'), sep='\n')
Тут есть несколько небольших хитростей:
Семантика функции print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
*<список>-- оператор*в этом контексте раскладывает элементы списка по безымянным параметрам функции, эти параметры у функции называются*objects- По умолчанию, несколько параметров
print(*objects) разделяются пробелом (см. выше наsep=' '), но мы указываем значение'\n', что разделяет элементы новой строкой
Объёмные списки и словари (в том числе с несколькими уровнями вложенности) удобно смотреть с помощью модуля pprint.
Просто импортируйте его и используйте вместо стандартного print:
from pprint import pprint
pprint(big_list_or_dict)