Fnguide 주식발행수, 투자의견, 컨센서스 크롤링

http://comp.fnguide.com/SVO2/ASP/SVD_main.asp?pGB=1&gicode=A005930 을 크롤링하는 예제

import requests
import pandas as pd

class Fnguide():
  def __init__(self, parent=None):
    super().__init__()


  def crawalSvdMain(self):
    sCode = sCode = 'A005930' # 삼성전자
    url = f"http://comp.fnguide.com/SVO2/ASP/SVD_main.asp?pGB=1&gicode={sCode}"
    page = requests.get(url)

    # 종가, 최고가, 수익률, 시가총액, 발생주식수(보통주 / 우선주)
    try:
      tables = pd.read_html(page.text, match='(보통주/ 우선주)', header=0, encoding='utf-8')
      console.log('1 ===================================');
      print(tables[0]) 
    except ValueError as e:
      print('I got a ValueError - reason "%s"' % str(e))
    finally:
      pass

    # 투자의견, 목표주가, 추정기관수, EPS, PER
    try:
      tables = pd.read_html(page.text, match='투자의견', header=0, encoding='utf-8')
      print(tables[0]) 
    except ValueError as e:
      print('I got a ValueError - reason "%s"' % str(e))
    finally:
      pass

    # 매출액, 영업이익, 당기순이익, 지배주주순이익, 자본총계, 자본금, 부채비율, 유보율, ROA, ROE, EPS, BPS, DPS, PER, PBR, 발행주식수
    try:
      tables = pd.read_html(page.text, match='컨센서스, 추정치', encoding='utf-8')
      print(tables[0]) 
    except ValueError as e:
      print('I got a ValueError - reason "%s"' % str(e))
    finally:
      pass


if __name__ == "__main__":
  fnguide = Fnguide()
  fnguide.crawalSvdMain()

결과

              종가/ 전일대비  ...             14,992,747
0         52주.최고가/ 최저가  ...                   9409
1  수익률(1M/ 3M/ 6M/ 1Y)  ...                  51.10
2      시가총액(상장예정포함,억원)  ...                1.06375
3         시가총액(보통주,억원)  ...                    100
4                  NaN  ...                    NaN
5      발행주식수(보통주/ 우선주)  ...  4,525,616,670 / 75.81

[6 rows x 4 columns]
   투자의견   목표주가   EPS   PER  추정기관수
0   4.0  79190  1736  35.9     22
      IFRS(연결)      Annual              ... Net Quarter                       
      IFRS(연결)     2020/12     2021/12  ...     2022/09     2022/12 2023/03(E)
0          매출액  2368070.00  2796048.00  ...   767817.00   704646.00  642012.00
1         영업이익   359939.00   516339.00  ...   108520.00    43061.00   10001.00
2   영업이익(발표기준)   359939.00   516339.00  ...   108520.00    43061.00        NaN
3        당기순이익   264078.00   399075.00  ...    93892.00   238414.00   15068.00
4      지배주주순이익   260908.00   392438.00  ...    91439.00   235025.00   12369.00
5     비지배주주순이익     3170.00     6637.00  ...     2453.00     3389.00        NaN
6         자산총계  3782357.00  4266212.00  ...  4702784.00  4484245.00        NaN
7         부채총계  1022877.00  1217212.00  ...  1253715.00   936749.00        NaN
8         자본총계  2759480.00  3048999.00  ...  3449069.00  3547496.00        NaN
9       지배주주지분  2676703.00  2962377.00  ...  3354702.00  3451861.00        NaN
10     비지배주주지분    82777.00    86622.00  ...    94367.00    95635.00        NaN
11         자본금     8975.00     8975.00  ...     8975.00     8975.00        NaN
12        부채비율       37.07       39.92  ...       36.35       26.41        NaN
13         유보율    29723.53    32906.47  ...    37277.71    38360.25        NaN
14       영업이익률       15.20       18.47  ...       14.13        6.11       1.56
15    지배주주순이익률       11.02       14.04  ...       11.91       33.35       1.93
16         ROA        7.23        9.92  ...        8.18       20.76       1.34
17         ROE        9.99       13.92  ...       11.18       27.62       1.43
18      EPS(원)     3841.00     5777.00  ...     1346.00     3460.00     182.00
19      BPS(원)    39406.00    43611.00  ...    49387.00    50817.00        NaN
20      DPS(원)     2994.00     1444.00  ...      361.00      361.00        NaN
21         PER       21.09       13.55  ...         NaN         NaN        NaN
22         PBR        2.06        1.80  ...        1.08        1.09        NaN
23       발행주식수  5969783.00  5969783.00  ...  5969783.00  5969783.00        NaN
24       배당수익률        3.70        1.84  ...        0.68        0.65        NaN

[25 rows x 9 columns]
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1