기업공시정보 dart.fss.or.kr 크롤링 텍스트와 링크 가져오기

조회수 1149회

http://dart.fss.or.kr/dsac001/mainAll.do

위 링크에서 노출되는 공들 중 최근 것부터 시작해 5개 정도의 공시의 공시대상회사명 / 보고서명 / 보고서의 링크를 가져오려면 어떻게 해야 하나요??

<tbody>에 있는 것은 알겠는데 어떻게 따와야할지 모르겠습니다..

  • '어떻게'라는 질문은 너무 범위가 넓으니 좀 더 상세한 질문을 하시는게 좋습니다. 가령 파이썬의 어떤 모듈을 써야 하냐... 특정 함수를 써봤는데 오류가 나더리... 이런 식으로 말이죠. 아니면 정말 처음부터 끝까지 다 알려달라는 의미의 '어떻게'인가요? 만약 그렇다면 지난 질문처럼 추천수가 거꾸로 올라가겠죠. 편집요청빌런 2020.2.20 12:34

2 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    https://pypi.org/project/dart-fss/

    이런 게 있네요. 해보진 않았습니다.

  • 위 답변자님께서 관련 모듈을 소개해 주셨지만 혹시 몰라서 간단한 크롤링 코드 올려 봅니다.

    공시대상회사명, 보고서명, 보고서 주소를 크롤링하는 코드입니다.

    from bs4 import BeautifulSoup
    import urllib.request
    import re
    
    # html 파싱
    with urllib.request.urlopen("http://dart.fss.or.kr/dsac001/mainAll.do") as response:
        html = response.read()
        soup = BeautifulSoup(html, 'html.parser')
    
    trs = soup.findAll('tr')[1:5+1]  # 상위 5개 목록
    for tr in trs:
        td = tr.findAll('td')
        company = re.sub(r'[\t\n\r ]', '', td[1].find('a').text)  # 공시대상회사명
        report = re.sub(r'[\t\n\r ]', '', tr.findAll('td')[2].find('a').text)  # 보고서명
        report_link = 'dart.fss.or.kr' + tr.findAll('td')[2].find('a').attrs['href']  # 보고서 주소
    
        print('공시대상회사명:', company, '\t보고서명:', report, '\t보고서 주소:', report_link)  # 출력
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)