본문 바로가기

카테고리 없음

[Python] 웹 페이지 크롤링 기초 : 주소 확인, 셀렉터 복사 (2)

환경 : Python 3.10

사용 라이브러리 :

beautifulsoup4 (4.10.0)

requests (2.26.0)

 

 

이전 글에서 주소를 확인하였으니 이번에는 파싱에 필요한 셀렉터를 가져오도록 하겠습니다.

 

당첨번호 우 클릭 후 검사에 들어갔습니다.

그리고 셀렉터를 얻고자 하는 값에 우 클릭 후 '복사> selector 복사'를 클릭하였습니다.

당첨번호 첫 번째 값의 selector 값은 아래와 같습니다.

#article > div:nth-child(2) > div > div.win_result > div > div.num.win > p > span:nth-child(1)

당첨번호 두 번째 값의 selector 값은 애라와 같습니다.

#article > div:nth-child(2) > div > div.win_result > div > div.num.win > p > span:nth-child(2)

 

위에서 얻은 selector 값을 확인해보니 가장 우측 끝의 nth-child에 숫자에 따라 각 당첨번호를 확인할 수 있었습니다.

 

그럼 지금까지 얻은 정보를 이용하여 당첨번호를 수집하는 파이썬 소스코드를 작성해보겠습니다.

 

URL = 'https://www.dhlottery.co.kr/gameResult.do?method=byWin'
# 987회차 값을 얻기 위해 각 값에 987을 할당
data = {'drwNo': 987, 'dwrNoList': 987}
res = requests.post(URL, data=data)

soup = BeautifulSoup(res.text, 'html.parser')

arr=[]

# 얻어온 selector값을 이용하여 당첨번호를 획득하고 배열에 저장
for i in range(1,7):
            target_id = "#article > div:nth-child(2) > div > div.win_result > div > div.num.win > p > span:nth-child("+str(i)+")"
            num = soup.select_one(target_id).get_text()
            arr.append(num)
# 당첨번호 출력
print (','.join(map(str,arr)))

 

위 코드를 실행하니 얻고자하는 값을 확인할 수 있었습니다.