Веб-версияОткрыть в Telegram

Пост🖥 Быстрый веб-скрейпинг с библиотекой Polars

9 июня 2023
P
Python RU
🖥 Быстрый веб-скрейпинг с библиотекой Polars Polars — это библиотека Python для работы с датафреймами, по скорости превосходящая Pandas. Как и Pandas, Polars можно использовать для парсинга сайтов. С ее помощью можно читать любые CSV-файлы, опубликованные на сайте, и даже извлекать таблицы из HTML-страниц. Однако в настоящее время в Polars нет функции .read_html, как в Pandas. Поэтому я покажу обходной путь, позволяющий превратить таблицы с HTML-страниц в Polars-датафреймы. Скрейпинг нескольких CSV-файлов с использованием Polars Не скачивайте по одному CSV-файлы, загруженные на сайт, а прочитайте их с помощью Polars. Для этого нужно получить ссылку на файлы и использовать .read_csv. Мы используем сайт Football-Data, который предоставляет исторические данные о футбольных матчах высших лиг всего мира. Проведем скрейпинг CSV-файла из Premier League (Премьер-лига). Чтобы CSV-файл “Премьер-лига” оказался в списке сверху, нужно сначала получить его ссылку. Для этого наведите курсор на CSV-файл и нажмите “Copy Link Address” (“Копировать адрес ссылки”). Получаем такую ссылку. Теперь прочитаем ее с Polars. import polars as pl pl.read_csv('https://www.football-data.co.uk/mmz4281/2122/E0.csv') Получаем датафрейм Polars со всеми данными: Но это только CSV-файл с данными Премьер-лиги. Чтобы получить файлы с данными других лиг, таких как Championship (Чемпионат), League 1 (Лига 1) и League 2 (Лига 2), нужно добавить цикл for. Вот как это сделать: import polars as pl leagues = ['E0', 'E1', 'E2', 'E3', 'EC'] # список лиг frames = [] for league in leagues: df = pd.read_csv(root + "2122" + "/" + league + ".csv") frames.append(df) Приведенный выше цикл извлечет CSV-файлы из всех соревнований в сезоне 21/22. Список leagues содержит идентификатор каждой лиги. Например, “E0” означает Премьер-лигу. Те же шаги можно выполнить для извлечения файлов из нескольких сезонов. Теперь посмотрим, как извлекать данные из таблиц на HTML-страницах. Скрейпинг HTML-страниц с Polars (обходной путь) Polars нет функции .read_html, которая позволяла бы легко извлекать таблицы из HTML-страниц. Однако есть обходной путь, который поможет превратить таблицы из HTML-страниц в Polars-датафреймы. Для этого в дополнение к Polars нужно установить следующие библиотеки: !pip install pandas !pip install lxml !pip install pyarrow Pandas и lxml помогут извлечь данные, а pyarrow понадобится для превращения Pandas-датафрейма в Polars-датафрейм. Извлечем табличные данные из статьи Википедии “List of The Simpsons episodes (seasons 1–20) (“Список эпизодов “Симпсонов”, сезоны 1–20”): Сначала используем .read_html Pandas для извлечения таблиц из Википедии: import pandas as pd my_list = pd.read_html('https://en.wikipedia.org/wiki/List_of_The_Simpsons_episodes_(seasons_1%E2%80%9320)') my_list содержит список датафреймов. Каждый датафрейм — это таблица со страницы Википедии. Выберем случайную таблицу и назовем ее pandas_df. pandas_df = my_list[5] Теперь нужно использовать .from_pandas, чтобы превратить Pandas-датафрейм в Polars-датафрейм. polars_df = pl.from_pandas(pandas_df) Теперь у нас есть Polars-датафрейм со всеми собранными данными. Чтобы превратить все Pandas-датафреймы из my_list в Polars-датафреймы, можно использовать списковое включение. my_new_list = [pl.from_pandas(pandas_df) for pandas_df in my_list] Вот и все! Теперь вы можете пользоваться всеми преимуществами Polars! Чтобы узнать больше о Polars, ознакомьтесь с официальной документацией или посмотрите полное руководство по Polars. @pro_python_code
👍6❤2🔥2
53 · 2.6K ·

Рядом в ленте

PPython RU📌 Poetry Poetry — это удобный инструмент для управления версиями и зависимостями Python. С его помощью легко контролировать и корректировать версии, а также ценPPython RU🔥 5 примеров использования Redis с кодом на Python 1. Caching Redis можно использовать для кэширования часто используемых данных, снижая нагрузку на ваше основн
это сообщение
PPython RU9 скриптов автоматизации Python для решения проблем В нашей повседневной работе нам нужно выполнять некоторые скучные и повторяющиеся задачи, такие как копироваPPython RUPyGame: учебник по программированию игр на Python Когда я начал изучать компьютерное программирование в конце прошлого тысячелетия, это было вызвано моим желани

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем