[python] BeautifulSoup을 이용한 naver 투자자별 매도 매수상위 가져오기

[python] BeautifulSoup을 이용한 naver 투자자별 매도 매수상위 가져오기 updated_at: 2024-01-22 15:02

naver 투자자별 매도 매수상위 가져오기

import requests
from bs4 import BeautifulSoup
from utils import *
import pandas as pd

class Naver():
  def __init__(self):
    super().__init__()

  @property
  def headers(self):
    return {
      "User-Agent": "Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b2) Gecko/20100720 Firefox/4.0b2",
      "X-Requested-With": "XMLHttpRequest",
      "Accept": "text/html",
      "Accept-Encoding": "gzip, deflate",
      "Connection": "keep-alive",
    }

  def 투자자별매매동향(self, code=None):
    code = '005930'  # 삼성전자
    url = 'https://finance.naver.com/item/frgn.naver?code=' + code
    page = requests.get(url, headers=self.headers)

    # 당일 날짜를 얻기위해
    soup = BeautifulSoup(page.text, 'html.parser')
    datetag = soup.find('em', class_='date')
    ymd = datetag.text[0:10].replace('.', '-')
    print(ymd)

    tables = pd.read_html(page.text, match='거래원정보', encoding='utf-8')
    for i, row in tables[0].iterrows():
      if not isNaN(row['매도상위']) and row['매도상위'] != '외국계추정합':
        print('================')
        print(row)

if __name__ == "__main__":
  naver = Naver()
  naver.투자자별매매동향()

결과

2023-04-14

매도상위          이베스트
거래량      2294313.0
매수상위          이베스트
거래량.1    2733907.0
Name: 3, dtype: object

매도상위        미래에셋증권
거래량      1553590.0
매수상위        미래에셋증권
거래량.1    1838599.0
Name: 4, dtype: object

매도상위          CLSA
거래량      1480053.0
매수상위            삼성
거래량.1    1104210.0
Name: 5, dtype: object

매도상위            한화
거래량      1017592.0
매수상위            한화
거래량.1    1041357.0
Name: 6, dtype: object

매도상위       신한투자증권
거래량      658961.0
매수상위         KB증권
거래량.1    780190.0
Name: 7, dtype: object

평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글