Data Mining, Программирование

Очистка списка индонезийских акций

Сбор данных из IDX Indonesia с помощью Selenium на Python

А. Введение

Инвестирование - это разумный способ сэкономить. В это десятилетие моя страна быстро развивалась в области инвестиций в акции. Я не проиграю и попытаюсь выяснить, где я могу инвестировать в акции. Наконец, я поискал в Google и нашел список акций на платформе IDX (Индонезийская фондовая биржа). Итак, я поискал список компаний, открывших свои фондовые рынки, и получил таблицу со списком акций. Вот как выглядит таблица:

Хорошо, из этой таблицы мы обнаружили, что 713 компаний открывают фондовый рынок. Я пытаюсь очистить эти данные, чтобы сохранить их. Это мои шаги по очистке таблицы списка акций. Следуйте этому плану, если хотите попробовать:

  1. Предпосылки
  2. Импортировать библиотеки
  3. Шаги соскабливания
  4. Сохранение в CSV
  5. "Резюме"

Б. Обсуждение

перейдем к очистке данных с первого шага.

1. Предпосылки

При этих предварительных условиях вам понадобятся две библиотеки для успешного парсинга данных. Есть панды и селен. Вы должны установить их все. Вот как установить его в Jupyter Notebook.

О, да. Не забудьте скачать веб-драйвер. Здесь мы используем хром-драйвер последней версии 8.8. Пожалуйста, скачайте его здесь.

Если у вас уже есть все эти библиотеки, вы можете немедленно выполнить следующие шаги.

2. Импортировать библиотеки

Это код для импорта библиотек:

3. Шаги соскабливания

а. Открытие URL с помощью webdriver из python

Выполните приведенный ниже код, чтобы открыть URL-адрес с помощью веб-драйвера. Здесь я использую хромированный драйвер.

б. Отображение автоматики в 100 строках

  • Поиск ключевых слов на языке HTML, код которого показывает 100 строк.

Открыв URL-адрес, посмотрите на свой драйвер Chrome, затем нажмите «ctrl» + «shift» + «i» на клавиатуре . Вы видите, что в той сети есть какой-то язык HTML. Внимание на «Элементы», следующий щелчок по знаку курсора. После этого наведите указатель мыши на показанные параметры. Вы увидите, что имя элемента - «stockTable_length». Выбираем 100 строк для отображения таблицы.

чтобы отобразить 100 строк с помощью Python, выполните следующий код:

c. Получение значений в таблице листинговых акций

  • Поиск ключа на языке HTML, который показывает каждое значение

а. ищу ключ тела стола

Мы должны искать, какой ключ охватывает все значения в этой таблице. Хорошо, снова зайдите в драйвер Chrome, наведите курсор на некоторые значения и найдите ключ, который охватывает все значения. Это должно было выглядеть так:

отлично, нам удалось найти ключ HTML, который охватывает все значения таблицы. Этот ключ - «tbody». Итак, мы можем написать код, чтобы найти имена тегов и сохранить их в переменной с именем «table_data». Вот как выглядит код:

table_data = driver.find_element_by_tag_name("tbody")

б. ищем ключ каждого значения

Посмотрите на картинку ниже:

с той картинки. Мы обнаружили, что «tr» покрывает значения строки и каждое значение на ключах «td». Итак, нам нужно найти строки с помощью метода «.find_elements_by_tag_name (« tr »)». Это код:

table_data.find_elements_by_tag_name("tr")

а «tr» покрывает «td» для каждого значения. Мы получаем значения, находя элементы по имени тега. Нравится:

find_elements_by_tag_name("td")

c. делая автоматический щелчок в «Далее».

После того, как мы поймем ключ, покрывающий каждое значение в строках. Мы хотим получать значения автоматически. Мы должны сделать автоматический щелчок по следующему. Посмотрите на картинку ниже:

На картинке мы видим, что кнопка «далее» на HTML-ключе с названием «класс». Вот почему мы должны сделать автоматизацию с помощью кода, подобного приведенному ниже.

next_button = driver.find_element_by_class_name("next")
next_button.click()

d. превращая весь код в цикл, чтобы его можно было скопировать в 713

Хорошо, чтобы сделать автоматическую очистку с помощью цикла, мы используем цикл while. В этом разделе я объединил код, чтобы искать значения в каждой строке. Так что код такой:

  • Удаление отзывов о программе запуска на веб-сайте

Угу, Ребята, не забудьте убрать отзыв лаунчера. Скопируйте этот код ниже, чтобы удалить функции обратной связи с этого веб-сайта. Если мы не удалим его, в некоторых случаях мы получим ошибки.

document.getElementById("launcher").style.display = "none"
document.querySelector(".feedback_overlay").style.display = "none"
document.querySelector(".feedback_panel").style.display = "none"

Это способ удалить средство запуска обратной связи.

  1. Перейдите в драйвер Chrome, который открывает URL-адрес списка запасов таблиц.
  2. Затем нажмите «ctrl» + «shift» + «i», вы увидите элемент с языком HTML. Нажмите «Консоль» в строке меню. На этой консоли вы готовы скопировать + вставить код для удаления меню обратной связи. Это выглядит так:

внизу вы видите желтый кружок.

Когда вы вводите этот код, это результат. Ууууууууууууууууууууууууууууууууууууууууууу удалось удалить отзывы вроде желтого кружка. На этой табличке мы не обнаружили, что отзыв «Bantuan Offline» выглядит так, как показано ниже.

4. Сохранение в CSV.

Это код для сохранения в CSV:

df.to_csv('stocks_list.csv', index = False)

C. Резюме

Отлично, нам удалось понять, как очищать данные с помощью селена. Мы можем понять всю компанию, которая открывает фондовый рынок в Индонезии. Если вы хотите увидеть сводку кода. Не забудьте удалить средство запуска обратной связи, если у вас возникла ошибка.

Надеюсь, это нам пригодится. И я благодарю своего друга Димаса Вихандоно, который хотел вместе обсудить эту тему.

Удачного обучения!

D. Ссылки:

[1] Байдзю Мутукадан, Селен с Python

[2] Индонезийская фондовая биржа, Список акций

[3] Димас Вихандоно, idx_selenium_scrap

[4] Ронни Фахрудин, сбор данных

Еще одно мое сочинение:

  1. Визуализация акций ANTM с помощью Plotly и Mplfinance
  2. Машинное обучение с низким кодом
  3. Как легко установить Apache Kafka Windows?
  4. Правильное обнаружение и обработка выбросов
  5. Shell Scripting в Unix