파이썬으로 파싱 후 select 함수 사용에서 궁금한 점

파이썬으로 파싱 후 select 함수 사용에서 궁금한 점

작성일 2023.10.04댓글 1건
    게시물 수정 , 삭제는 로그인 필요

아래와 같은 주소를 파싱하여 select 함수 사용했습니다.

import requests as rq
from bs4 import BeautifulSoup
import pandas as pd

url = 'https://kind.krx.co.kr/disclosure/todaydisclosure.do?method=searchTodayDisclosureMain&marketType=0'
krx = rq.get(url)

krx_html = BeautifulSoup(krx.content, 'html.parser')

krx_title = krx_html.select('section.wrapper-contents > section.contents')
#html의 상위 코드에서부터 순서대로 입력해야 select 함수를 사용할 수 있다.

print(krx_title)

분명 사이트의 html 요소에는 아래 사진과 같이 article 태그에 꼬리를 무는 태그들이 많은데,




코드를 작동해 article 부분을 찾아보면 
<article class="pcontents" id="main-contents">
</article>
이렇게만 나옵니다.

이거 저 url의 개발자가 크롤링 못하도록 막아놓은 것일까요?


+ 프로그램 관련 질문 하는 사이트 알고 계시면 몇개만 알려주세요.

감사합니다.


#파이썬으로 json 파싱

profile_image 익명 작성일 -

실제로 긁어오는 것은 웹브라우저에서 보이는 게 아닌 '페이지 소스보기' 한 상태의 페이지 입니다.

때문에 url로 정해둔 타겟페이지에 대해서 소스보기를 해보면 질문내용과는 다른 페이지를 보실 수 있습니다.

(크롤링을 막았다기보단, 페이지를 구성해놓고 ajax를 통해서 동적으로 데이터를 가져와서 테이블을 구성하는 방식인 것 같습니다!)

실제로 데이터를 받아오는 주소는 https://kind.krx.co.kr/disclosure/todaydisclosure.do 이며,

POST 방식으로 요청을 해야 제대로 볼 수 있습니다!

(이 주소는 웹브라우저에서 F12 > network 탭에서 확인 가능)

간단한 예시로 cmd에서 curl 사용 (파이썬에서 사용하시려면 post data 만 추가)

curl -X POST "https://kind.krx.co.kr/disclosure/todaydisclosure.do" -d "method=searchTodayDisclosureSub&currentPageSize=15&pageIndex=1&orderMode=0&orderStat=D&forward=todaydisclosure_sub&searchMode=&searchCodeType=&chose=S&todayFlag=Y&repIsuSrtCd=&kosdaqSegment=&selDate=2023-10-05"

시작 > 실행 > cmd 에서 입력

실제 사이트와 일치

이러한 기업 공시제공 사이트는 api를 제공할테니 그걸 이용하는 것도 좋을 것 같습니다.

+ 프로그램 관련 질문은 구체적으로 어떤 건지는 잘 모르겠습니다.. 혹시 stackoverflow 같은곳 일까요?

파이썬 코드 해석 도와주세요

... 1, select 가 될 것입니다. " " "" " " "" 마지막으로 input를 사용해 정답을 입력받은 if else를 이용하여... 더 궁금한점이 있으시다면 추가질문 남겨주세요!