소프트웨어 엑셀로 KBS1 KBS2 MBC SBS 등 편성표 가져오기
2022.06.06 20:10
몇가지 추가 또는 수정하였습니다. 이것으로 마무리 할까 합니다.^^ 지상파 편성표 웹크롤링.xlsm
- 오늘 이후 날로 특정 날짜나 요일 입력시 해당 데이터를 하루씩 가져오도록 하였습니다.
- 일주일치 작성하려면 각 시트 추가 후 해당 일자 각각 실행하면 되겠습니다.
- 당연히 요일 지정은 오늘을 포함하여 일주일 치에만 사용할 수 있습니다.
- 날짜와 요일을 시트 이름으로 설정
- 보기 좋게 시간 부분을 두자리로 통일
alt+F8 -> GetTVProgramOn 실행
참고로 코드중 Array(9, 7, 11, 5) 에 채널 번호를 추가/제거하여 쉽게 원하는 채널만 가져 올 수 있습니다.
안녕하세요? 쉬는 날 질문게시판에 올라온 내용을 YouTube 보고 공부하였습니다.
질문; excel 시트로 방송 편성표 가져올 때의 질문 입니다 - https://windowsforum.kr/qna/18100846
YouTube에 알맞은 동영상이 있어서 따라하였습니다. ; https://www.youtube.com/watch?v=h6CUDIyF0fw
- 첨부 엑셀 파일 속성에 링크 기록하였습니다.
- 동영상을 보시면 아시겠지만, Microsoft HTML Object Library와 Microsoft Internet Controls를 참조합니다.
질문의 Daum 홈페이지가 아닌 https://tv.kt.com/ 에서 채널 정보를 가져옵니다.
인터넷익스플로러를 이용합니다. 크롬(셀레니움)을 이용하는 방법도 있는 것 같습니다.
지상파 편성표.xlsm 매크로 포함으로 열어야 합니다.
alt + F8 누르면 매크로 실행 창이 나오고,
GetTVProgram 실행하면,
아래쪽 화면처럼 질문한 양식과 비슷한 데이터를 얻을 수 있습니다. ^^ 포맷은 좀 더 추가하면 될 것 같습니다.
단순한 웹페이지는 가져올때 엑셀-데이터-웹으로 가져올 수 있는데, 요즘 웹페이지는 구조가 복잡하여 쉽지만은 않습니다.
파워쿼리를 좀 더 잘 사용할 수 있으면 가능할지 모르겠습니다만, 표 안에 표 구조를 가지고 있어서 잘 안되더군요.
관심있으신 분은 alt+F11 누르면 코드를 볼 수 있습니다만,
유튜브 내용을 조금 수정한 정도라서 유튜브 동영상을 보시고 포함된 코드를 보시는 것을 추천드립니다.^^
유튜브 동영상에서 코드를 제공하지 않아서 모두 보면서 타이핑하였습니다. 2~3시간 걸린듯 합니다.
- PC 성능에 따라서, 성능이 느려서 에러가 나면 아래 코드중 TimeValue("00:00:01") 부분의 초를 늘려 주면 될 것 같습니다.
- 아래는 유튜브 원본 코드입니다.(수정된 코드는 엑셀 파일안에 있으니 참고하십시오.)
Sub GetTVProgram()
Dim ie As InternetExplorer
Dim strURL As String
Dim nCnt As Integer
Dim i As Integer
Dim strTVName As String
Dim strDate As String
Dim ele As IHTMLElement
Set ie = CreateObject("InternetExplorer.application")
strURL = "https://tv.kt.com/tv/channel/pChInfo.asp"
ie.navigate strURL
ie.Visible = True
Do While (ie.readyState <> READYSTATE_COMPLETE Or ie.Busy = True)
DoEvents
Loop
'1초 추가 대기
Application.Wait (Now + TimeValue("00:00:01"))
nCnt = Range("A60000").End(xlUp).Row
For i = 0 To 10
ie.document.getElementById("linkChannel" & i).Click
'TV명 가져오기
strTVName = ie.document.getElementById("linkChannel" & i).innerText
Application.Wait (Now + TimeValue("00:00:01"))
'날짜 가져오기
strDate = ie.document.getElementsByClassName("day")(0).innerText
'프로그램 및 장르 가져오기
For Each ele In ie.document.getElementsByClassName("program")
If ele.parentElement.parentElement.parentElement.className = "board tb_schedule" Then
Range("A" & nCnt) = strDate
Range("B" & nCnt) = strTVName
Range("C" & nCnt) = ele.innerText '프로그램
Range("D" & nCnt) = ele.nextElementSibling.innerText '장르
nCnt = nCnt + 1
End If
Next ele
Next i
ie.Quit
Set ie = Nothing
End Sub
댓글 [14]
-
슈머슈마 2022.06.06 20:16
와 ~. 이건 뭘로 만드신건가요? -
지후빠 2022.06.06 20:27
안녕하세요? 엑셀 VBA (VBS와 거의 비슷) 입니다. ^^
-
선우아버 2022.06.06 22:22
관심 가져주시고 많은 시간을 할애해 주셨네요. 감사합니다...^^*
덕분에 간단히 편성표를 복사해 올수 있었습니다.
ps. 매주 일주일치의 작업을 해야 하는데...
kt 홈페이지의 주간편성표 페이지로 VBA 수정좀 해주실수 없나요?
시간 나실때 부탁좀 드리겠습니다.
아울러 다시 한번 감사드립니다.
-
지후빠 2022.06.07 11:13
GetTVProgramSunday 매크로를 추가하였습니다. 지상파 편성표 2.xlsm
오늘 기준으로 다음 일요일의 데이터를 가져옵니다. ^^
-
지후빠 2022.06.07 16:31
앗! 매주일주일치... 매주일요일인줄 착각했습니다. 시간 날때 다시 해보겠습니다.ㅠㅠ
-
상발이 2022.06.07 04:58
수고하셨습니다.
-
맨션에살자 2022.06.07 07:53
역쉬 지후빠님!!
쵝오~~
-
cungice 2022.06.07 13:23
수고 많으셨습니다. 감사합니다.
-
가을사랑 2022.06.07 20:55
멋진 아이디어
대단하십니다. -
지후빠 2022.06.07 23:18
댓글과 추천해주신 여러분 감사드립니다.^^
쓰는데 크게 불편하지 않을 것 같아서 이쯤에서 멈출까 합니다.~
-
선우아버 2022.06.07 23:40
지후빠님 매우 매우 감사합니다. *^^*
이로써 기본틀을 구축 할수가 있을것 같습니다.
수고 하셨습니다!!!
감사 합니다!!!
-
와로 2022.06.08 22:21
또 꿀팁 한건(?) 하셨네요 ^ㅡ^
수고하셨습니다~!
-
mso 2022.06.10 06:00
오래전에 링크를 받은 것이라 출처가 생각나진 않지만 지금도 사용하고 있습니다.
자후빠님 외 이런 것도 있다는 정도로 봐주셨으면 합니다.
https://docs.google.com/spreadsheets/d/1D9jF3KVYAZBvYRDMzZ8oEnGwVojanrIW7FQFl4n2TOk/edit#gid=0/
-
지후빠 2022.06.10 12:17
안녕하세요? 어떻게 만들어진 것인지 궁금한데 속을 알 수 없네요.ㅠㅠ 감사합니다.
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
4330 | 소프트웨어| PE 에서 바로 가기 생성 배치 파일에 대한 고찰 [17] | 지후빠 | 2112 | 25 | 08-28 |
4329 | 윈 도 우| BCD 백업 및 복구 프로그램 입니다 [11] | 지룡자 | 3108 | 25 | 12-10 |
4328 | 윈 도 우| [팁] MBR 디스크에 EFI 시스템 파티션 만들기 [16] | suk | 5637 | 25 | 04-19 |
4327 | 소프트웨어| WinNTSetup.exe에 소소한 팁들 [18] | suk | 3475 | 25 | 03-09 |
4326 | 소프트웨어| 디지털 포렌식 툴 - FTK imager [15] |
|
5043 | 25 | 01-28 |
4325 | 소프트웨어| Total Commander 9.5x 32비트 및 64비트용 한국어 확장 메... [11] | VenusGirl | 4716 | 25 | 03-13 |
4324 | 소프트웨어| Win10PE 2016_LTSB_x64 PE 만들기 [24] | 대추사랑 | 5976 | 25 | 02-12 |
4323 | 윈 도 우| 나만의 PE를 만들자 실전편 3탄 PE고수되기1편 (윈도우10PE... [94] | 지연서연아 | 8674 | 25 | 09-01 |
4322 | 윈 도 우| W7-8PE Builder제작/완성/수정하여 다시첩부 UP/처음사용자용 [21] | 까꾸리 | 12561 | 25 | 06-03 |
4321 | 소프트웨어| (추가3) 배치파일 추가기능 extd.exe 사용 팁 [7] | 지후빠 | 954 | 24 | 08-13 |
4320 | 소프트웨어| pureBasic - FMIFS FormatEX 0.1.2 [6] | 입니다 | 991 | 24 | 12-08 |
4319 | 소프트웨어| 특정 프로그램을 인터넷 차단하는 방법(인증문제 등...) [3] | 사랑이7 | 2595 | 24 | 05-26 |
4318 | 윈 도 우| [실사] 윈도우11 프로 VHD 설치 방법 [11] | 무월 | 3123 | 24 | 05-08 |
4317 | 윈 도 우| [실사] 윈도우11&10 BCD 부팅 오류, 부트 복구(설치) [16] | 무월 | 2474 | 24 | 12-05 |
4316 | 윈 도 우| 추가)PE 우측하단 워터마크에 각종 정보 넣기 [14] | 히이이잌 | 2697 | 24 | 06-16 |
4315 | 윈 도 우| 나만의 PE를 만들자 실전편 4탄 PE고수되기2편 (윈도우10PE... [74] | 지연서연아 | 6521 | 24 | 09-05 |
4314 | 윈 도 우| PE를 실컴에 설치하여 사용하는 방법 [33] |
|
15529 | 24 | 05-14 |
4313 | 소프트웨어| RSImagex 에디션 WIM 통합 플래쉬 동영상 강좌... [75] |
|
10101 | 24 | 04-29 |
4312 | 소프트웨어| 한글(HWP) 바탕문서와 한글 스타일 사용으로 칼퇴하기^^ [5] | 승승아빠 | 1182 | 23 | 04-27 |
4311 | 소프트웨어| 탐색기 컨텍스트 메뉴에 토탈커맨더에서 열기 추가 [15] | 지후빠 | 977 | 23 | 07-16 |