CoderCastrov logo
CoderCastrov
Парсер

Как парсить тикеры S&P 500 за 5 простых шагов (на Python)

Как парсить тикеры S&P 500 за 5 простых шагов (на Python)
просмотров
1 мин чтение
#Парсер

Шаг 1: Нахождение тикеров онлайн (URL)

URL = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"

Шаг 2: Импорт необходимых библиотек

Для этой задачи нам понадобятся [BeautifulSoup4](http://pip install bs4), Pandas** **и Requests

import bs4 as bs
import requests
import pandas as pd

Шаг 3: Парсинг данных

Мы собираемся использовать нашу библиотеку requests для получения содержимого HTML и преобразования его в объект beautifulsoup.

# Получение содержимого страницы с помощью запроса
    resp = requests.get(URL)
    soup = bs.BeautifulSoup(resp.content)

Шаг 4: Поиск таблицы и извлечение тикеров (Увлекательная часть)

Нас не интересует содержимое страницы, мы хотим только получить символы тикеров с этой страницы. Символы тикеров содержатся в таблице HTML <table> с именем класса: "wikitable sortable".

Мы собираемся использовать beautifulsoup для извлечения таблицы из этой страницы.

# Получение таблицы со списком акций
    table = soup.find('table', {'class': 'wikitable sortable'})

Нас не интересует вся таблица, нам нужны только символы тикеров.

Символ тикера скрыт внутри ячейки таблицы <td>, которая находится внутри строки таблицы <tr>

# Список для сохранения всех тикеров
    tickers = []
    
    # Парсинг HTML-страницы для поиска тикера
    
    for row in table.findAll('tr')[1:]: # Игнорируем заголовочную строку
        ticker = row.findAll('td')[0].text
#         print(ticker) # ОТЛАДОЧНОЕ_УТВЕРЖДЕНИЕ
        tickers.append(ticker)

Шаг 5: Запись данных в CSV

Если вы задаетесь вопросом, зачем мы импортируем pandas в шаге 1? Вот ответ: pandas поможет нам преобразовать наш список в файл CSV.

# Преобразование списка в объект данных pandas
    df = pd.DataFrame(tickers)
    df = df.replace('\n','', regex=True)
    df.columns = ["Тикер"]
    
    # Запись объекта данных в CSV
    df.to_csv('s_&_p_500_tickers.csv')