INVESTAR / StockAnalysisInPython

456 stars 413 forks source link

4장 상장법인목록 웹 스크레이핑 관련 질문입니다. #94

Open jin1-seo opened 3 years ago

jin1-seo commented 3 years ago

책의 예제에서 보면 액셀 파일을 다운받지 않고도 url을 이용해 인터넷 상 파일도 읽을 수 있다고 하셔서 그 파일의 링크를 혼자 찾아보려고 시도를 해봤는데, ctrl+U로 들어가도보고, 크롬에서 F12를 눌러 HTML도 뒤져봤는데 도저히 다운로드 파일의 URL을 찾을 수 가 없었습니다. 어떻게 구하신건지 궁금합니다.

(+) 추가적으로 매매거래정지종목의 목록도 스크레이핑해서 목록에서 제외하는 방식으로 하려고 했는데, 이 파일도 URL을 찾을 수 가 없었습니다.. 방법이 따로 있는건지, 아니면 정해진 규칙이 있는건지 모르겠네요...! 혹시 방법이 공개된 곳에서 알려지기 꺼려지는 방법이라 책에도 기재해두시지 않은 거라면, 파일을 다운받아서 그때그때 최신화하는 방법으로 하고자 합니다.

INVESTAR commented 3 years ago
  1. 예전에 제가 책을 쓸 때에만 해도 소스 코드 상에서 URL을 확인할 수 있었는데, 오늘 확인해 보니 AJAX 비동기 방식으로 코드가 변경되면서 소스 코드 내부에 존재하던 URL이 사라진 것 같네요. 하지만 기존의 URL은 그대로 동작합니다.
import pandas as pd
krx_list = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13')[0]
print(krx_list)

>>> 
            회사명    종목코드  ...                    홈페이지     지역
0         DRB동일    4840  ...     http://drbworld.com  부산광역시
1           DSR  155660  ...      http://www.dsr.com  부산광역시
2         GS글로벌    1250  ...  http://www.gsgcorp.com  서울특별시
3     HDC현대산업개발  294870  ...  http://www.hdc-dvp.com  서울특별시
4           KEC   92220  ...    http://www.kec.co.kr  서울특별시
...         ...     ...  ...                     ...    ...
2445       타임기술  318660  ...     http://timett.co.kr   경상남도
2446         툴젠  199800  ...  http://www.toolgen.com  서울특별시
2447   플럼라인생명과학  222670  ...   http://www.plsdna.com  서울특별시
2448   한국미라클피플사  331660  ...   http://www.kmpc.co.kr    경기도
2449        휴벡셀  212310  ...      http://huvexel.com    경기도
[2450 rows x 9 columns]
  1. 매매거래정지종목 페이지도 동적인 페이지로 작성되어 있기 때문에 실제로 웹 페이지의 소스 코드 내부를 뒤져봐도 테이블 태그만 하나 존재할 뿐 매매거래가 정지된 종목명은 찾아볼 수 없을 것입니다.

https://kind.krx.co.kr/investwarn/tradinghaltissue.do?method=searchTradingHaltIssueMain 즉, 위의 페이지도 일반적인 방법으로는 웹 스크레이핑이 불가한 페이지입니다.

파일을 수동으로 다운로드하기 싫으시다면 selenium 같은 자동화 도구를 이용하거나 387 페이지에 나온 것처럼 크롬 헤드리스 모드로 스크레이핑 해보시기 바랍니다.