_Data Science_👨💻_: Парсинг данных с использованием Python_
Table Of Content
- **Установка зависимостей:**
- **Импорт зависимостей:**
- **Установка Chrome Driver:**
- **Информация о веб-странице:**
- **Скрапинг данных:**
- **Преобразование данных в объект Pandas DataFrame:**
- **Сохранение DataFrame в формате CSV:**
- manthan89-py/Data-Science
- Этот репозиторий содержит практические задания по предмету Data Science из нашего университета. - manthan89-py/Data-Science
- Manthan Bhikadiya - CHAROTAR UNIVERSITY OF SCIENCE AND TECHNOLOGY - Сурат, Гуджарат, Индия |...
- Просмотреть профиль Manthan Bhikadiya на LinkedIn, крупнейшем в мире сообществе специалистов. У Мантана есть 2 указанных места работы на...
- manthan89-py - Обзор
- Интересуюсь ИИ, глубоким обучением, машинным обучением, компьютерным зрением, блокчейном и Flutter😇. Занимаюсь некоторыми соревновательными...
- Manthan Bhikadiya 🖋 - Medium
- Читайте статьи от Manthan Bhikadiya 🖋 на Medium. Интересуюсь ИИ, глубоким обучением, машинным обучением, компьютерным зрением...
Это целая серия о концепциях науки о данных. Это первый блог о сборе данных или, можно сказать, процессе сбора данных в науке о данных. Убедитесь, что вы следите за мной, чтобы быть в курсе этой серии.
Когда что-то достаточно важно, вы делаете это, даже если шансы не в вашу пользу. ~Илон Маск
Введение
Этот блог в основном посвящен базовому парсингу данных с веб-страницы. Наука о данных - это работа с данными. Поэтому одна из самых важных частей науки о данных - это сбор данных. Здесь мы парсим данные с веб-страницы. Существует много способов сбора данных. Для парсинга данных я использовал следующие библиотеки:
(1) Selenium: Chrome Driver
(2) Beautiful Soup: парсинг веб-страниц
(3) Pandas: манипуляция данными
Для этой практики мы парсим данные с Covid 19 India Dashboard Data.
Ссылка: https://www.covid19india.org/ Больше о сборе данных.
Обзор :
Я выполнил эту обработку в три основных шага:
(1) Получение доступа к веб-странице с помощью веб-драйвера Chrome Selenium.
(2) Парсинг данных с помощью Beautiful Soup.
(3) Преобразование данных в таблицу данных pandas и сохранение данных в виде CSV-файла.
Реализация кода:
Для полного кода реализации проверьте ссылку в конце этого блога.
Установка зависимостей:
pip install selenium pandas beautifulsoup4
Импорт зависимостей:
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
Установка Chrome Driver:
Скачайте Chrome Driver по этой ссылке.
Распакуйте файл и установите его в любом месте, а затем добавьте переменную PATH в переменные среды.
Я добавил путь в System Variables.
Я добавил Chrome Driver в рабочую директорию.
driver = webdriver.Chrome("chromedriver")
Вы должны добавить путь к вашему chromedriver.exe.
Информация о веб-странице:
У нас есть много информации о ситуации с Covid в Индии. Мы получаем таблицу и особенно столбцы о общем количестве случаев Covid, полностью выздоровевших случаев и количестве вакцинированных доз по штатам.
Создайте пустой список для названия штата, общего количества случаев Covid, полностью выздоровевших случаев и количества вакцинированных людей.
states = []
total_covid_cases = []
total_recoverd_cases = []
vaccinated_people = []
Добавьте URL веб-страницы в драйвер, чтобы мы могли получить исходный код конкретной веб-страницы.
driver.get("https://www.covid19india.org/")
Скрапинг данных:
content = driver.page_source
soup = BeautifulSoup(content)
Сначала мы получаем исходный код страницы, а затем создаем объект Beautiful Soup, чтобы мы могли выполнять некоторые операции с ним.
Теперь нам нужно знать, что мы хотим получить, какое имя класса, какой конкретный тег содержит информацию, которую мы хотим. На все эти вопросы мы можем получить ответ, просмотрев веб-страницу. Для этого вам должно быть немного знаний HTML и CSS.
Итак, для наших данных Covid мы скрапим полную таблицу, которая находится между классом «table container». У Soup есть встроенная функция find, которая найдет первое вхождение нашего шаблона.
table = soup.find('div',attrs={'class':'table-container'})
Вышеуказанная строка означает найти тег div на конкретной веб-странице, у которого есть имя класса «table container».
Теперь у нас есть таблица, но мы хотим получить только некоторые столбцы, поэтому нам нужно снова отфильтровать таблицу.
data = []
row_data = []
**for** index , item **in** enumerate(table.find_all('div' , attrs={'class' : 'total'})):
**if** index%6 == 0 **and** index != 0:
data.append(row_data)
row_data = []
row_data.append(item.text)
Здесь мы сначала получаем все данные из таблицы и создаем список списков. Таким образом, data[0] означает первый столбец таблицы, который доступен на веб-странице covid19 India.
Теперь, получив список списков, мы используем специальный цикл в Python и добавляем значения в пустой список.
**for** d **in** data:
total_covid_cases.append(d[0])
total_recoverd_cases.append(d[2])
vaccinated_people.append(d[-1])
Просто сосредоточьтесь на коде, вы все поймете. Это очень просто...👍
**for** item **in** table.find_all('div',attrs={'class':'state-name'}):
states.append(item.text)
После этого мы добавляем названия штатов в список штатов. Для названия штата нам нужно получить все теги div с классом «state-name».
Преобразование данных в объект Pandas DataFrame:
data = pd.DataFrame({'Штаты': states,
'Всего случаев Covid': total_covid_cases,
'Всего выздоровевших': total_recoverd_cases,
'Количество вакцинированных': vaccinated_people})
Мы получаем результаты вот так.
Сохранение DataFrame в формате CSV:
data.to_csv('covid-report-statewise.csv')
Используя функцию to_csv, мы можем преобразовать объект DataFrame в файл CSV.
Код:
manthan89-py/Data-Science
Этот репозиторий содержит практические задания по предмету Data Science из нашего университета. - manthan89-py/Data-Science
github.com
Вывод:
Мы можем получить любые данные с веб-страницы, используя библиотеку для парсинга веб-страниц, такую как Beautiful Soup, Scrappy и т. д. После преобразования в объект Pandas мы можем применять все функции Pandas к этим данным.
Более подробно о функциях Pandas можно узнать здесь.
Более подробно о Beautiful Soup можно узнать здесь.
LinkedIn:
Manthan Bhikadiya - CHAROTAR UNIVERSITY OF SCIENCE AND TECHNOLOGY - Сурат, Гуджарат, Индия |...
Просмотреть профиль Manthan Bhikadiya на LinkedIn, крупнейшем в мире сообществе специалистов. У Мантана есть 2 указанных места работы на...
Больше проектов и блогов:
Проекты:
manthan89-py - Обзор
Интересуюсь ИИ, глубоким обучением, машинным обучением, компьютерным зрением, блокчейном и Flutter😇. Занимаюсь некоторыми соревновательными...
github.com
Блоги:
Manthan Bhikadiya 🖋 - Medium
Читайте статьи от Manthan Bhikadiya 🖋 на Medium. Интересуюсь ИИ, глубоким обучением, машинным обучением, компьютерным зрением...
manthan-bhikadiya.medium.com
Заключительное замечание:
Спасибо за чтение! Если вам понравилась эта статья, пожалуйста, нажмите кнопку 👏 как можно больше раз. Это будет означать много для меня и побудит меня продолжать делиться своими знаниями. Если вам нравится мой контент, подпишитесь на меня в Medium, я постараюсь опубликовать как можно больше блогов.