Web Crawler

CGV 필요한 데이터 파싱

JongSeok_12 2019. 11. 27. 20:43

이전에 셀레니움을 통해서 각 CGV 지역별 상영관 페이지에 대한 정보를 가져왔다.

이제부터는 가져온 페이지들을 반복문을 통해서 하나하나씩 페이지를 불러와서 필요한 정보만 파싱해오는 것을 할 것이다.

파싱할 페이지를 보니 파싱할 데이터가 있는 부분이 iframe 태그로 되어 있는 것을 확인 할 수 있다

니움을 통해서 각 CGV 지역별 상영관 페이지에 대한 정보를 가져왔다.

 

이제부터는 가져온 페이지들을 반복문을 통해서 하나하나씩 페이지를 불러와서 필요한 정보만 파싱해오는 것을 할 것이다.

 

파싱할 페이지를 보니 파싱할 데이터가 있는 부분이 iframe 태그로 되어 있는 것을 확인 할 수 있다

 

해당 iframe 태그는 현재 페이지에 새로운 페이지를 하나더 추가 할 수 있게 해주는 태그라는 것을 찾을 수 있었다.

즉 내가 필요한 데이터가 있는 곳은 새롭게 추가된 하나의 페이지안에 데이터가 있다는 의미이기 때문에 

해당 iframe의 src 속성 값에 내가 필요로 하는 데이터가 담긴 페이지를 요청할 때 필요한 파라미터 값이 있다는 것을 알 수 있다.

이제 src 속성 값을 빼와서 요청을 한다면 본격적으로 내가 필요로 하는 정보가 담긴 페이지를 불러올 수 있을 것 이다.

from bs4 import BeautifulSoup
import requests

url = "http://www.cgv.co.kr/reserve/show-times/?areacode=01&theaterCode=0056&date=20191127"

res = requests.get(url)
soup = BeautifulSoup(res.content, "html.parser")

for i in soup.select("iframe#ifrm_movie_time_table") :
    print("http://www.cgv.co.kr" + i.get("src"))

위와 같이 요청을 하면 성공적으로 원하는 페이지가 불러와지는 것을 확인 할 수 있다