<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:media="http://search.yahoo.com/mrss/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>최저가 &#8211; 투데이즈.kr</title>
	<atom:link href="https://2days.kr/tag/%EC%B5%9C%EC%A0%80%EA%B0%80/feed/" rel="self" type="application/rss+xml" />
	<link>https://2days.kr</link>
	<description>투데이즈</description>
	<lastBuildDate>Sun, 16 Nov 2025 13:14:42 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8</generator>

<image>
	<url>https://2days.kr/wp-content/uploads/2025/10/cropped-simbol-1-32x32.png</url>
	<title>최저가 &#8211; 투데이즈.kr</title>
	<link>https://2days.kr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램</title>
		<link>https://2days.kr/19/10/12/7795/it/program/</link>
		
		<dc:creator><![CDATA[urjent]]></dc:creator>
		<pubDate>Thu, 19 Oct 2023 03:38:35 +0000</pubDate>
				<category><![CDATA[program]]></category>
		<category><![CDATA[옥션]]></category>
		<category><![CDATA[최저가]]></category>
		<category><![CDATA[최저가 항공권]]></category>
		<category><![CDATA[파이썬]]></category>
		<category><![CDATA[프로그램]]></category>
		<category><![CDATA[항공권]]></category>
		<guid isPermaLink="false">https://2days.kr/?p=7795</guid>

					<description><![CDATA[최근에 코로나가 풀리고 사람들이 많이들 여행을 가서 그런지 내가 원하는 시간대의 제주도행 티켓이 없고, 있더라도 터무니 없이 비쌉니다. 대략 2개월전에 미리 예약하면 그나마 좀 나은 편이지만, 기간이 촉박한 상태에서 티켓을 예매 하다 보면 터무니 없이 비싸죠]]></description>
										<content:encoded><![CDATA[<p>오늘은 옥션 최저가 항공권 텔레그램 메세지를 받을 수 있는 파이썬 프로그램 관련 글입니다. 최근에 코로나가 풀리고 사람들이 많이들 여행을 가서 그런지 내가 원하는 시간대의 제주도행 티켓이 없고, 있더라도 터무니 없이 비쌉니다. 대략 2개월전에 미리 예약하면 그나마 좀 나은 편이지만, 기간이 촉박한 상태에서 티켓을 예매 하다 보면 터무니 없이 비싸죠</p>
<p data-ke-size="size16">결국 합리적인 가격으로 비행기표를 예매할 수 있도록 자동 티켓예매 프로그램을 제작하기로 합니다</p>
<div class="separator"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlQVyCahjVQc8KYtxZKaJGGEdigmfP9boR0R0b_fB6gDSEx-p3sYeIYc0bwjvbFe7p2neVRFZ22bNT9ggOv-KST-Quff5vXvlrHtnVEHnzOkMpmQhzxvmNCVP0QSBX6vZOq3p3gBrn8lhleMsVs9Y7G7Ol55MWg_ahhF3Yw6ZvOIzuA2pFtrnLQdattaRe/s2560/%E1%84%8C%E1%85%A6%E1%84%86%E1%85%A9%E1%86%A8%E1%84%8B%E1%85%B3%E1%86%AF-%E1%84%8B%E1%85%B5%E1%86%B8%E1%84%85%E1%85%A7%E1%86%A8%E1%84%92%E1%85%A2%E1%84%8C%E1%85%AE%E1%84%89%E1%85%A6%E1%84%8B%E1%85%AD_-011.png" target="_blank" rel="noopener"><img post-id="7795" fifu-featured="1" fetchpriority="high" decoding="async" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlQVyCahjVQc8KYtxZKaJGGEdigmfP9boR0R0b_fB6gDSEx-p3sYeIYc0bwjvbFe7p2neVRFZ22bNT9ggOv-KST-Quff5vXvlrHtnVEHnzOkMpmQhzxvmNCVP0QSBX6vZOq3p3gBrn8lhleMsVs9Y7G7Ol55MWg_ahhF3Yw6ZvOIzuA2pFtrnLQdattaRe/w400-h400/%E1%84%8C%E1%85%A6%E1%84%86%E1%85%A9%E1%86%A8%E1%84%8B%E1%85%B3%E1%86%AF-%E1%84%8B%E1%85%B5%E1%86%B8%E1%84%85%E1%85%A7%E1%86%A8%E1%84%92%E1%85%A2%E1%84%8C%E1%85%AE%E1%84%89%E1%85%A6%E1%84%8B%E1%85%AD_-011.png" width="400" height="400" border="0" data-original-height="2560" data-original-width="2560" alt="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 1"><div class='code-block code-block-2' style='margin: 8px auto; text-align: center; display: block; clear: both;'>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8940400388075870"
     crossorigin="anonymous"></script>
<!-- 중간 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-8940400388075870"
     data-ad-slot="8794586137"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
</a></div>
<p>&nbsp;</p>
<h4 data-ke-size="size20">최저가 항공권 파이썬 프로그램 소개</h4>
<div>
<p data-ke-size="size16">이번 프로그램은 옥션 최저가 항공티켓의 정보를 실시간으로 받아와 너무 비싸지 않은 가격으로 비행기표를 예매할 수 있는 프로그램을 만들어 보겠습니다.</p>
<p data-ke-size="size16">향후 진행 순서</p>
<p data-ke-size="size16">이후 글부터 진행되는 세부적인 내용은 다음과 같습니다.</p>
<p data-ke-size="size16"> 1.원하는 날짜 선택하기</p>
<p data-ke-size="size16"> 우리는 대부분 직장인이기 때문에 매주 금요일 저녁에 업무를 마치고 제주도로 간다고 가정하겠습니다. 여기 서는 파이썬으로 2개월치 매주 금요일의 날짜를 가져오는 방법에 대하여 알아 보도록 하겠습니다.</p>
<p data-ke-size="size16"> 2. 선택한 날짜의 항공 티켓 정보 받아오기</p>
<p data-ke-size="size16"> &#8211; 위의 1에서 우리가 선택한 날짜의 티켓 정보를 파이썬의 셀레니움과 크롤링 기법을 응용하여 가져와서 엑셀파일로 저장하는 방법에 대하여 알아보겠습니다.</p>
<p data-ke-size="size16"> 3.티켓정보에서 내가 원하는 시간대로 필터하기</p>
<p data-ke-size="size16"> -금요일이라고 해도 새벽 6시 티켓 등은 우리가 원하는 티켓이 아닙니다. 따라서 우리가 원하는 시간대인 업무 종료 시간 17시~20시 사이의 티켓 정보만 필터 해서 가져오는 방법을 설명합니다.</p>
<p data-ke-size="size16"> 4.시간대로 필터한 티켓 중에서 최저가 티켓 뽑아오기</p>
<p data-ke-size="size16"> -금요일 17시~20시 사이의 티켓들 중에서 가장 가격이 낮은 티켓의 정보를 가져오는 방법을 알아보겠습니다.</p>
<p data-ke-size="size16"> 5.위의 내용을 종합하여 메신저로 최저가 정보와 전체 항공티켓 정보 받기</p>
<p data-ke-size="size16"> -위에서 했던 내용들을 조금만 응용하여 텔레그램 메신저에 실시간으로 최저가 정보를 뿌려주고, 추가적인 정보를 확인할 수 있도록 전체 정보는 엑셀파일로 첨부하여 메신저로 보내주는 방법에 대하여 살펴보겠습니다.</p>
<p data-ke-size="size16">  완성된 프로그램 실행 화면</p>
<p data-ke-size="size16"> &#8211; 최종 완성된 프로그램의 결과화면은 아래와 같습니다.</p>
<p data-ke-size="size16"> <u>(1)옥션 최저가 항공티켓의 정보를 실시간으로 받아와 너무 비싸지 않은 가격으로 비행기표를 예매할 수 있는 프로그램 </u></p>
<p data-ke-size="size16">프로그램을 처음 실행 시 아래와 같이 실행됩니다.</p>
<p data-ke-size="size16">
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1900" data-origin-height="588"><span data-url="https://blog.kakaocdn.net/dn/b1Bfx4/btrVsoc5bEU/5nqktwpYGSzYJpIWx7SMm0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/b1Bfx4/btrVsoc5bEU/5nqktwpYGSzYJpIWx7SMm0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1Bfx4%2FbtrVsoc5bEU%2F5nqktwpYGSzYJpIWx7SMm0%2Fimg.png" data-origin-width="1900" data-origin-height="588" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 2"></span></figure>
<p data-ke-size="size16"> 그리고 프로그램 내 크롬드라이버를 사용한 파이썬의 셀레니움을 이용하여 자동으로 웹브라우저를 실행 후 티켓정보를 가져오기 시작합니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 001.png" data-origin-width="1263" data-origin-height="972"><span data-url="https://blog.kakaocdn.net/dn/TLVsQ/btrVsoREg7t/oXubkHSbXMAVW3yBGLwFn0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/TLVsQ/btrVsoREg7t/oXubkHSbXMAVW3yBGLwFn0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTLVsQ%2FbtrVsoREg7t%2FoXubkHSbXMAVW3yBGLwFn0%2Fimg.png" data-filename="이미지 001.png" data-origin-width="1263" data-origin-height="972" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 3"></span></figure>
<p data-ke-size="size16"> 2. 아래는 2개월치 옥션 항공 티켓 정보를 가져오고 있는 모습입니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 002.png" data-origin-width="1051" data-origin-height="903"><span data-url="https://blog.kakaocdn.net/dn/kBLaA/btrVmYz82Jj/KYQJTKPMKF3OhqUaPziEHK/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/kBLaA/btrVmYz82Jj/KYQJTKPMKF3OhqUaPziEHK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkBLaA%2FbtrVmYz82Jj%2FKYQJTKPMKF3OhqUaPziEHK%2Fimg.png" data-filename="이미지 002.png" data-origin-width="1051" data-origin-height="903" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 4"></span></figure>
<p data-ke-size="size16">3. 동시에 가져온 티켓정보를 메신저에 최저가 정보를 뿌려주고, 전체 항공티켓 세부 정보는 파일로 보내줍니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 003.png" data-origin-width="594" data-origin-height="603"><span data-url="https://blog.kakaocdn.net/dn/QcbvO/btrVk41FnNz/TkwGGHzEzH1TKrq3U9KmC1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/QcbvO/btrVk41FnNz/TkwGGHzEzH1TKrq3U9KmC1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQcbvO%2FbtrVk41FnNz%2FTkwGGHzEzH1TKrq3U9KmC1%2Fimg.png" data-filename="이미지 003.png" data-origin-width="594" data-origin-height="603" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 5"></span></figure>
<p data-ke-size="size16">4.윈도우탐색기에 해당 파일이 잘 저장된 것을 볼 수 있습니다.</p>
<p data-ke-size="size16">(여기서는 1,2월 2개월치 데이터인 1/6부터 매주 금요일치 정보 8주치를 수집하고 있음)</p>
<p data-ke-size="size16">
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 004.png" data-origin-width="630" data-origin-height="380"><span data-url="https://blog.kakaocdn.net/dn/smf7J/btrVsnFdd22/mMRqTCBhZw5pi4PiL5c5k0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/smf7J/btrVsnFdd22/mMRqTCBhZw5pi4PiL5c5k0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsmf7J%2FbtrVsnFdd22%2FmMRqTCBhZw5pi4PiL5c5k0%2Fimg.png" data-filename="이미지 004.png" data-origin-width="630" data-origin-height="380" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 6"></span></figure>
<p data-ke-size="size16">
<p data-ke-size="size16">5. 엑셀파일을 열어보니 항공사별 티켓정보가 예상한 대로 잘 저장되어 있습니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 005.png" data-origin-width="1005" data-origin-height="748"><span data-url="https://blog.kakaocdn.net/dn/bqxP53/btrVsJBtc0n/V4BOGqGIQdUaF1DzQkpOk1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bqxP53/btrVsJBtc0n/V4BOGqGIQdUaF1DzQkpOk1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqxP53%2FbtrVsJBtc0n%2FV4BOGqGIQdUaF1DzQkpOk1%2Fimg.png" data-filename="이미지 005.png" data-origin-width="1005" data-origin-height="748" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 7"></span></figure>
<p data-ke-size="size16">
<p data-ke-size="size16">6. 프로그램이 최종적으로 완료되면, 아래와 같이 윈도우 탐색기에 매주 금요일의 티켓정보를 담고 있는 8주치 파일 8개가 저장됩니다.</p>
<p data-ke-size="size16">7. 아래는 우리가 원하는 시간대(17시~20시)에 티켓이 없는 경우 &#8216;티켓이 없습니다.&#8217; 라고 안내주고 있으며,</p>
<p data-ke-size="size16">1/20의 경우 설명절로 이미 티켓이 매진된것으로 보입니다.</p>
<p data-ke-size="size16">
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="919" data-origin-height="767"><span data-url="https://blog.kakaocdn.net/dn/dFjs29/btrVk4UYLiu/gAEPMjbxpIKGUavsJjVKF1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/dFjs29/btrVk4UYLiu/gAEPMjbxpIKGUavsJjVKF1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFjs29%2FbtrVk4UYLiu%2FgAEPMjbxpIKGUavsJjVKF1%2Fimg.png" data-origin-width="919" data-origin-height="767" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 8"></span></figure>
<p data-ke-size="size16"> 8.매신저에서도 실시간으로 2개월치 티켓정보(총 8번)가 잘 보여지고 있습니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 008.png" data-origin-width="1053" data-origin-height="919"><span data-url="https://blog.kakaocdn.net/dn/dXL2Aa/btrVsJ9jfQf/IEWAkDSDThU43URgMTTFF0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/dXL2Aa/btrVsJ9jfQf/IEWAkDSDThU43URgMTTFF0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdXL2Aa%2FbtrVsJ9jfQf%2FIEWAkDSDThU43URgMTTFF0%2Fimg.png" data-filename="이미지 008.png" data-origin-width="1053" data-origin-height="919" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 9"></span></figure>
<p data-ke-size="size16"> 그럼, 우리가 원하는 날짜인 매주 금요일에 대한 날짜 정보를 얻어오는 방법에 대하여 알아 보겠습니다.</p>
<h4 data-pm-slice="1 1 []" data-en-clipboard="true" data-ke-size="size20">완성된 프로그램 실행 화면</h4>
<div data-pm-slice="1 1 []" data-en-clipboard="true"> 최종 완성된 프로그램의 결과화면은 아래와 같습니다.</div>
<p data-ke-size="size16">
<p data-ke-size="size16">1.프로그램을 실행하면 2023년 1월 중 금요일에 해당하는 날짜인 아래 4개 날짜를 리스트로 받아오는 것을 볼 수 있습니다.</p>
<p data-ke-size="size16">[&#8216;2023-01-06&#8217;, &#8216;2023-01-13&#8217;, &#8216;2023-01-20&#8217;, &#8216;2023-01-27&#8217;]</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 005.png" data-origin-width="1915" data-origin-height="246"><span data-url="https://blog.kakaocdn.net/dn/dKuTl5/btrVqJaJao8/9hDMTHIvXuN4Ay2nSwrRt1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/dKuTl5/btrVqJaJao8/9hDMTHIvXuN4Ay2nSwrRt1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdKuTl5%2FbtrVqJaJao8%2F9hDMTHIvXuN4Ay2nSwrRt1%2Fimg.png" data-filename="이미지 005.png" data-origin-width="1915" data-origin-height="246" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 10"></span></figure>
<div><span data-url="https://blog.kakaocdn.net/dn/dKuTl5/btrVqJaJao8/9hDMTHIvXuN4Ay2nSwrRt1/img.png" data-lightbox="lightbox"> </span></div>
<p data-ke-size="size16">
<h4 data-ke-size="size20">주요 내용</h4>
<p data-ke-size="size16">
<p data-ke-size="size16">1. 소스코드를 먼저 살펴 보겠습니다.</p>
<p data-ke-size="size16">먼저 날짜 관련 모듈과 판다스 모듈을 임포트 해줍니다.</p>
<p data-ke-size="size16">그리고 데이터프레임형태로 날짜 데이터를 뽑아서</p>
<p data-ke-size="size16">dt_index = pd.date_range(start=&#8217;20230101&#8242;, end=&#8217;20230131&#8242;)</p>
<p data-ke-size="size16">
이 데이터프레임을 리스트로 바꿔 줍니다.<br />
dt_list = dt_index.strftime(&#8220;%Y.%m.%d&#8221;).tolist()</p>
<p data-ke-size="size16"> 금요일에 해당하는 날짜만 뽑을 것이기 때문에 이것을 담아둘 리스트 변수(fridays)를 만들어 둡니다.</p>
<p data-ke-size="size16"> for문으로 1월 날짜를 하나씩 돌면서 &#8216;금요일&#8217;인지를 찾습니다. 날짜에 해당하는 요일을 찾아주는 함수가 weekday()입니다.</p>
<p data-ke-size="size16">i.weekday()로 사용하면 해당 요일을 숫자로 표시해 줍니다.</p>
<p data-ke-size="size16"> 0   1   2   3  4   5   6</p>
<p data-ke-size="size16">월 화 수 목 금 토 일</p>
<p data-ke-size="size16"> if문으로 weekday()가 4이면 금요일 이므로 이 값을 미리 만들어둔 fridays[]리스트에 append로 담아 둡니다.</p>
<p data-ke-size="size16"> for문이 완료되면 fridays[]리스트에는 1월 중 금요일에 해당하는 날짜만 들어가게 됩니다.</p>
<p data-ke-size="size16">(자세한 내용은 아래 소스의 코멘트를 참조해 주세요.)</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 003.png" data-origin-width="806" data-origin-height="713"><span data-url="https://blog.kakaocdn.net/dn/LKjNp/btrVmfPHIVD/deyhiVrKqqhzL8RwHBwTXK/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/LKjNp/btrVmfPHIVD/deyhiVrKqqhzL8RwHBwTXK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLKjNp%2FbtrVmfPHIVD%2FdeyhiVrKqqhzL8RwHBwTXK%2Fimg.png" data-filename="이미지 003.png" data-origin-width="806" data-origin-height="713" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 11"></span></figure>
<p data-ke-size="size16"> 2. 위의 소스코드를 실행한 모습입니다.</p>
<p data-ke-size="size16">1월의 모든 날짜 정보가 &#8216;dt_list&#8217;에 들어가 있는 것을 알 수 있습니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 004.png" data-origin-width="1903" data-origin-height="751"><span data-url="https://blog.kakaocdn.net/dn/dIoxdz/btrVjO6a6pn/75RvxyheradSqOenaJIOq0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/dIoxdz/btrVjO6a6pn/75RvxyheradSqOenaJIOq0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIoxdz%2FbtrVjO6a6pn%2F75RvxyheradSqOenaJIOq0%2Fimg.png" data-filename="이미지 004.png" data-origin-width="1903" data-origin-height="751" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 12"></span></figure>
<p data-ke-size="size16"> 3. 디버깅(print문 등)을 좀 제거하여 보기좋게 한다음 프로그램을 실행하면, 최종적으로 우리가 원하는 매주 금요일의 날짜 데이터를 얻어온 것을 볼 수 있습니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 005.png" data-origin-width="1915" data-origin-height="246"><span data-url="https://blog.kakaocdn.net/dn/dKuTl5/btrVqJaJao8/9hDMTHIvXuN4Ay2nSwrRt1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/dKuTl5/btrVqJaJao8/9hDMTHIvXuN4Ay2nSwrRt1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdKuTl5%2FbtrVqJaJao8%2F9hDMTHIvXuN4Ay2nSwrRt1%2Fimg.png" data-filename="이미지 005.png" data-origin-width="1915" data-origin-height="246" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 10"></span></figure>
<p data-ke-size="size16">
<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style5" />
<p data-ke-size="size16">
<h4 data-pm-slice="1 1 []" data-en-clipboard="true" data-ke-size="size20">O 완성된 프로그램 실행 화면</h4>
<div data-pm-slice="1 1 []" data-en-clipboard="true"></div>
<p data-ke-size="size16">
<div> &#8211; 최종 완성된 프로그램의 결과화면은 아래와 같습니다.</div>
<p data-ke-size="size16">
<p data-ke-size="size16">1.프로그램을 실행하면 아래와 같은 모습으로 실행되며, 일단 이해를 위해서 간략하게 2023년 1월 중 금요일 2개만 테스트해 봅니다.</p>
<p data-ke-size="size16">[&#8216;2023-01-06&#8217;, &#8216;2023-01-13&#8217;]</p>
<p data-ke-size="size16">
<div>
<p data-ke-size="size16">
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 001.png" data-origin-width="1123" data-origin-height="887"><span data-url="https://blog.kakaocdn.net/dn/bOl9pW/btrXVlsRZKV/oIbsUek1vsLQOeItGgZSX1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bOl9pW/btrXVlsRZKV/oIbsUek1vsLQOeItGgZSX1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOl9pW%2FbtrXVlsRZKV%2FoIbsUek1vsLQOeItGgZSX1%2Fimg.png" data-filename="이미지 001.png" data-origin-width="1123" data-origin-height="887" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 14"></span></figure>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">2. 크롬드라이버(셀레니움)가 자동으로 웹브라우저를 실행하여 지정한 곳을 클릭하여 선택하고 있습니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 002.png" data-origin-width="1288" data-origin-height="963"><span data-url="https://blog.kakaocdn.net/dn/qGn88/btrXXhXjjgq/9xS8C6Xy5NIUHbLuiJGHQk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/qGn88/btrXXhXjjgq/9xS8C6Xy5NIUHbLuiJGHQk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqGn88%2FbtrXXhXjjgq%2F9xS8C6Xy5NIUHbLuiJGHQk%2Fimg.png" data-filename="이미지 002.png" data-origin-width="1288" data-origin-height="963" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 15"></span></figure>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">3.항공사별 티켓 정보를 보여주는 화면입니다.</p>
<p data-ke-size="size16">
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 003.png" data-origin-width="1303" data-origin-height="719"><span data-url="https://blog.kakaocdn.net/dn/cD5okr/btrXUqaoH1R/EXSCUm9jB7bym5PUcj8lW1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/cD5okr/btrXUqaoH1R/EXSCUm9jB7bym5PUcj8lW1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcD5okr%2FbtrXUqaoH1R%2FEXSCUm9jB7bym5PUcj8lW1%2Fimg.png" data-filename="이미지 003.png" data-origin-width="1303" data-origin-height="719" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 16"></span></figure>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">4.최종적으로 금요일 2개 날짜에 해당하는 정보를 수집하여 엑셀파일로 저장한 모습입니다.</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 004.png" data-origin-width="855" data-origin-height="367"><span data-url="https://blog.kakaocdn.net/dn/bqwGHS/btrXXzDzHck/Qw5JEVxf7LUFKJvt1rbTkk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bqwGHS/btrXXzDzHck/Qw5JEVxf7LUFKJvt1rbTkk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqwGHS%2FbtrXXzDzHck%2FQw5JEVxf7LUFKJvt1rbTkk%2Fimg.png" data-filename="이미지 004.png" data-origin-width="855" data-origin-height="367" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 17"></span></figure>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">5. 파일을 열어보니 항공사별 티켓정보가 잘 저장된 것을 확인할 수 있습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 005.png" data-origin-width="1042" data-origin-height="841"><span data-url="https://blog.kakaocdn.net/dn/edF8FP/btrXVhxoJiR/Hxu7kn8jxNoml5QD469za1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/edF8FP/btrXVhxoJiR/Hxu7kn8jxNoml5QD469za1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FedF8FP%2FbtrXVhxoJiR%2FHxu7kn8jxNoml5QD469za1%2Fimg.png" data-filename="이미지 005.png" data-origin-width="1042" data-origin-height="841" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 18"></span></figure>
<p data-ke-size="size16">
<p data-ke-size="size16">
</div>
<p data-ke-size="size16">
<p data-ke-size="size16">
<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style5" />
<div></div>
<div></div>
<p data-ke-size="size16">
<h4 data-ke-size="size20">O 주요 내용</h4>
<p data-ke-size="size16">
<p data-ke-size="size16">1. 소스코드를 먼저 살펴 보겠습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">아래 부분 소스의 경우 다른 부분은 이전 글과 동일하며, 이해를 쉽게하기 위하여 2주치 금요일 2개만 설정하여 테스트하였습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 006.png" data-origin-width="894" data-origin-height="844"><span data-url="https://blog.kakaocdn.net/dn/WxTa5/btrXTRzdTKv/gW5gxlyKVXSwfydEYYpR60/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/WxTa5/btrXTRzdTKv/gW5gxlyKVXSwfydEYYpR60/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWxTa5%2FbtrXTRzdTKv%2FgW5gxlyKVXSwfydEYYpR60%2Fimg.png" data-filename="이미지 006.png" data-origin-width="894" data-origin-height="844" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 19"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">2. 그리고 나서 셀레니움을 사용하기 위해 크롬 드라이버를 설정해 줍니다.</p>
<p data-ke-size="size16">browser =webdriver.Chrome(&#8220;chromedriver.exe&#8221;)</p>
<p data-ke-size="size16">
<p data-ke-size="size16">셀레니움 이용 시 브라우저를 띄우고 실행하기 때문에 다소 시간이 걸리기 때문에 반드시 지연시간(time.sleep())을 넣어 주어야 에러가 발생하지 않습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 007.png" data-origin-width="1296" data-origin-height="680"><span data-url="https://blog.kakaocdn.net/dn/H3P14/btrXWxTBH8i/uhrIUet1XoO4ZNCeff4qY1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/H3P14/btrXWxTBH8i/uhrIUet1XoO4ZNCeff4qY1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH3P14%2FbtrXWxTBH8i%2FuhrIUet1XoO4ZNCeff4qY1%2Fimg.png" data-filename="이미지 007.png" data-origin-width="1296" data-origin-height="680" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 20"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">3. 아래와 같이 크롬의 검사 기능을 이용하여 순서대로 실행 후 &#8216;Copy XPath&#8217;를 클릭하면 html 태그의 위치를 알아낼 수 있습니다.</p>
<p data-ke-size="size16">메모장 등에 붙여넣기 하시면 아래와 같이 태그가 나오며, 이 태크를 위의 소스 (1) 부분에 넣어준것입니다.</p>
<p data-ke-size="size16">//*[@id=&#8221;tour_wrap&#8221;]/div[1]/div[1]/a[2]/span[1]</p>
<p data-ke-size="size16">
<p data-ke-size="size16">동일한 방법으로 (2)~(5)까지 완료하시면 되며, (4)의 경우 첫주 금요일이 1부터 시작하므로 for 루프 전에 j=1을 선언(for 루프 끝나는 부분에 j = j+1 코드 포함)하여 루프를 돌때마다 1식 증가하도록 해주었습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1341" data-origin-height="617"><span data-url="https://blog.kakaocdn.net/dn/BKvdc/btrXZPFWaWO/o7DorIWAw1P3OGmDkxX5qk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/BKvdc/btrXZPFWaWO/o7DorIWAw1P3OGmDkxX5qk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBKvdc%2FbtrXZPFWaWO%2Fo7DorIWAw1P3OGmDkxX5qk%2Fimg.png" data-origin-width="1341" data-origin-height="617" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 21"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">4. 다음은 파이썬의 BeautifulSoup를 이용하여 옥션 항공티켓 정보를 크롤링하는 소스입니다.</p>
<p data-ke-size="size16">웹 페이지의 소스를 가져와서, 이를 이쁘게(?) 파싱하기 위해 아래와 같이 코딩합니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">라인 71~72</p>
<p data-ke-size="size16">html_souce = browser.page_source<br />
soup = BeautifulSoup(html_souce, &#8216;html.parser&#8217;)</p>
<p data-ke-size="size16">
<p data-ke-size="size16">그리고 원하는 부분만 가오기 위해 아래와 같이 find를 사용하여 모든 티켓정보를 가져온 후, find_all을 사용하여 개별 티켓정보를 가져온 후 ticket_list 변수에 담습니다.</p>
<p data-ke-size="size16">라인 77</p>
<p data-ke-size="size16">ticket_list = soup.find(class_=&#8217;simplebar-content&#8217;).find_all(class_=&#8217;gt_offer_list_item srpResultLi&#8217;)</p>
<p data-ke-size="size16">(class_=&#8217;simplebar-content&#8217; 은 유일하므로 find를 사용하고, class_=&#8217;gt_offer_list_item srpResultLi&#8217; 은 여러개 존재하므로 find_all을 사용)</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 008.png" data-origin-width="1204" data-origin-height="663"><span data-url="https://blog.kakaocdn.net/dn/MYoLf/btrXWKL7T95/pnscqqCm2wFkBOiv9FqSIK/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/MYoLf/btrXWKL7T95/pnscqqCm2wFkBOiv9FqSIK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMYoLf%2FbtrXWKL7T95%2FpnscqqCm2wFkBOiv9FqSIK%2Fimg.png" data-filename="이미지 008.png" data-origin-width="1204" data-origin-height="663" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 22"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">아래 자세히 보면 (2)번에 마우스를 갖다대면 왼쪽의 음영(모든 티켓)이 선택되는 것을 볼 수 있습니다. 이것으로 이 태그가 모든 티켓을 나타냄을 알 수 있습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1563" data-origin-height="783"><span data-url="https://blog.kakaocdn.net/dn/651jI/btrXTQG61wm/rF3fcD0LUiSPye5ErRLeF0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/651jI/btrXTQG61wm/rF3fcD0LUiSPye5ErRLeF0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F651jI%2FbtrXTQG61wm%2FrF3fcD0LUiSPye5ErRLeF0%2Fimg.png" data-origin-width="1563" data-origin-height="783" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 23"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16"> 아래 오른 쪽 &lt;li&gt;태그에 마우스를 갖다대면 마찬가지로 왼쪽에 음영이 생기는데, 이번에는 티켓 하나만 선택 되었습니다.</p>
<p data-ke-size="size16">즉, 이 태그가 하나의 티켓을 가리키고 있다는 것을 알 수 있습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1558" data-origin-height="856"><span data-url="https://blog.kakaocdn.net/dn/bx6uYq/btrXZvALlrY/M55NVHKOUWUTLCSad3VX7K/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bx6uYq/btrXZvALlrY/M55NVHKOUWUTLCSad3VX7K/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx6uYq%2FbtrXZvALlrY%2FM55NVHKOUWUTLCSad3VX7K%2Fimg.png" data-origin-width="1558" data-origin-height="856" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 24"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">위의 소스는 일단 테스트를 위해 티켓 하나에 대한 정보만 가져와서 뿌려보았습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">라인 83</p>
<p data-ke-size="size16">print(ticket_list[0])</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">특정 태그를 선택 시 find 또는 select를 사용할 수 있으며, 기호에 맞게 사용하시면 되며, 저는 find를 사용하였습니다.</p>
<p data-ke-size="size16">라인 84~85</p>
<p data-ke-size="size16">print(ticket_list[0].find(&#8220;div&#8221;,class_=&#8217;gt_offer_col gt_offer_company&#8217;).text.strip())</p>
<p data-ke-size="size16">print(ticket_list[0].select(&#8216;div.gt_offer_col.gt_offer_company &gt; img&#8217;)[0][&#8216;alt&#8217;],&#8221;+++++++++++++&#8221;)</p>
<p data-ke-size="size16">위의 84라인은 해당 클래스에 해당하는 태그 정보 중 텍스트를 가져오는 것인데, strip()를 사용하여 양쪽 옆 빈칸을 제거해 주고 있습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">5. 위에서 티켓정보 1개만 가져와서 테스트해 본 결과 잘되는 것을 확인하였으므로, 이제 티켓정보를 모두 가져오는 코드를 아래와 같이 작성합니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">소스에 대한 설명은 아래를 참고하시기 바랍니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1429" data-origin-height="843"><span data-url="https://blog.kakaocdn.net/dn/cElcYo/btrXUSq49v2/Sjt9TAVObA3jBSFD7jlfC1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/cElcYo/btrXUSq49v2/Sjt9TAVObA3jBSFD7jlfC1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcElcYo%2FbtrXUSq49v2%2FSjt9TAVObA3jBSFD7jlfC1%2Fimg.png" data-origin-width="1429" data-origin-height="843" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 25"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">6. 실행 결과 엑셀 파일이 잘 생성된 것을 확인 할 수 있으며,</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="793" data-origin-height="309"><span data-url="https://blog.kakaocdn.net/dn/nI9zd/btrXUSkkst7/CWkQmY4k4vyHEDnKYGmA41/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/nI9zd/btrXUSkkst7/CWkQmY4k4vyHEDnKYGmA41/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnI9zd%2FbtrXUSkkst7%2FCWkQmY4k4vyHEDnKYGmA41%2Fimg.png" data-origin-width="793" data-origin-height="309" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 26"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">7. 엑셀 파일을 열어보니 내용(티켓 정보)이 잘 입력된 것을 볼 수 있습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1438" data-origin-height="445"><span data-url="https://blog.kakaocdn.net/dn/bb0DJY/btrXVgebSX1/KYBMtFWq0UphAVFPK8ios1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bb0DJY/btrXVgebSX1/KYBMtFWq0UphAVFPK8ios1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbb0DJY%2FbtrXVgebSX1%2FKYBMtFWq0UphAVFPK8ios1%2Fimg.png" data-origin-width="1438" data-origin-height="445" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 27"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<h4 data-pm-slice="1 1 []" data-en-clipboard="true" data-ke-size="size20">O 완성된 프로그램 실행 화면</h4>
<div data-pm-slice="1 1 []" data-en-clipboard="true"></div>
<p data-ke-size="size16">
<div> &#8211; 최종 완성된 프로그램의 결과화면은 아래와 같습니다.</div>
<p data-ke-size="size16">
<p data-ke-size="size16">1.프로그램을 실행하면 아래와 같은 모습으로 실행되며, 일단 쉬운 이해를 위해서 간략하게 2023년 2월 중 금요일 2개만, 그리고 티켓리스트 중 위에서부터 10개만 테스트해 보았습니다.</p>
<p data-ke-size="size16">[&#8216;2023-03-06&#8217;, &#8216;2023-01-13&#8217;]</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 001.png" data-origin-width="839" data-origin-height="205"><span data-url="https://blog.kakaocdn.net/dn/lqXxm/btrXVZCRT3J/iKpffLXMJGGcd70bS0T3b1/img.png" data-lightbox="lightbox" data-alt="3"><img decoding="async" src="https://blog.kakaocdn.net/dn/lqXxm/btrXVZCRT3J/iKpffLXMJGGcd70bS0T3b1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlqXxm%2FbtrXVZCRT3J%2FiKpffLXMJGGcd70bS0T3b1%2Fimg.png" data-filename="이미지 001.png" data-origin-width="839" data-origin-height="205" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 28"></span><figcaption>3</figcaption></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">2. 프로그램 실행 결과 2/3일자 티켓 상위 10개 중 17~21시 조건을 만족하는 티켓은 없었습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1261" data-origin-height="996"><span data-url="https://blog.kakaocdn.net/dn/2J3r5/btrXUWtmpkL/STKpu5sOw9VBSSdk6a9Kv0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/2J3r5/btrXUWtmpkL/STKpu5sOw9VBSSdk6a9Kv0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2J3r5%2FbtrXUWtmpkL%2FSTKpu5sOw9VBSSdk6a9Kv0%2Fimg.png" data-origin-width="1261" data-origin-height="996" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 29"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">아래에서 보듯이 상위 10개 티켓 중 17시 이후에 출발하는 비행기는 없습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 003.png" data-origin-width="1231" data-origin-height="764"><span data-url="https://blog.kakaocdn.net/dn/egIJap/btrXXydBxXL/S0sJFH9lAtoxwITcKhjMf1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/egIJap/btrXXydBxXL/S0sJFH9lAtoxwITcKhjMf1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FegIJap%2FbtrXXydBxXL%2FS0sJFH9lAtoxwITcKhjMf1%2Fimg.png" data-filename="이미지 003.png" data-origin-width="1231" data-origin-height="764" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 30"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">3. 2월 10일자는 티켓 상위 10개 중 17~21시 조건을 만족하는 티켓이 아래와 같이 1개 존재하는 것을 확인하였습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 004.png" data-origin-width="1254" data-origin-height="783"><span data-url="https://blog.kakaocdn.net/dn/bnaDyu/btrXXhptuQd/30vf6UHFzpF9OKrnr3KutK/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bnaDyu/btrXXhptuQd/30vf6UHFzpF9OKrnr3KutK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnaDyu%2FbtrXXhptuQd%2F30vf6UHFzpF9OKrnr3KutK%2Fimg.png" data-filename="이미지 004.png" data-origin-width="1254" data-origin-height="783" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 31"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">실제 옥션 웹페이지에서 확인 결과도 위에서 2번째 티켓이 우리의 시간 조건(17~21시)에 맞는 것을 확인할 수 있습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 005.png" data-origin-width="1303" data-origin-height="839"><span data-url="https://blog.kakaocdn.net/dn/Lj0fj/btrXTQNSxmN/HXNEhmAiWhGCf1dBMqkkz0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/Lj0fj/btrXTQNSxmN/HXNEhmAiWhGCf1dBMqkkz0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLj0fj%2FbtrXTQNSxmN%2FHXNEhmAiWhGCf1dBMqkkz0%2Fimg.png" data-filename="이미지 005.png" data-origin-width="1303" data-origin-height="839" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 32"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16"> 1. 소스를 살펴보겠습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">다른 부분은 이전 글의 소스와 모두 동일하므로 아래 주요 부분만 설명드리겠습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">라인 131 : 웹페이지에서 출발시각 및 도착 시각 정보를 가져옵니다. (11:25  12:35)</p>
<p data-ke-size="size16">라인 132 : 위에서 가져온 시각 정보 중 출발시각 정보만 뽑습니다. (11:25)</p>
<p data-ke-size="size16">라인 133 : 시간 비교를 위해서 데이터 포멧을 str -&gt; date형으로 바꿔 줍니다.</p>
<p data-ke-size="size16">라인 134 : 크롤링해서 가져온 시각을 중심으로 비교하기 위해 mytime변수에 그 시각 정보를 넣어 줍니다.(mytime = 1900-01-01 11:25:00)</p>
<p data-ke-size="size16">라인 136 : 시간조건의 시작 시간을 지정해 줍니다.(1900-01-01 17:00:00)</p>
<p data-ke-size="size16">라인 138 : 시간조건의 끝 시간을 지정해 줍니다.(1900-01-01 21:00:00)</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1572" data-origin-height="864"><span data-url="https://blog.kakaocdn.net/dn/IVac3/btrXZQrl8cb/lE54BfW1D3O5msOW2ZWDFk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/IVac3/btrXZQrl8cb/lE54BfW1D3O5msOW2ZWDFk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIVac3%2FbtrXZQrl8cb%2FlE54BfW1D3O5msOW2ZWDFk%2Fimg.png" data-origin-width="1572" data-origin-height="864" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 33"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">아래 구글 크롬에서 출발 시각 우클릭 &gt; 검사 클릭 시 오른쪽 화면에서 아래와 같이 출발 시각이 선택된 것을 확인할 수 있습니다.</p>
<p data-ke-size="size16">time_ = ticket_list[i].find(&#8220;div&#8221;,class_=&#8217;gt_offer_col gt_offer_time&#8217;).text.strip()</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 007.png" data-origin-width="1855" data-origin-height="867"><span data-url="https://blog.kakaocdn.net/dn/dENGiS/btrXUpWS2rA/w5X60hKYpNM8jqS7azoZAk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/dENGiS/btrXUpWS2rA/w5X60hKYpNM8jqS7azoZAk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdENGiS%2FbtrXUpWS2rA%2Fw5X60hKYpNM8jqS7azoZAk%2Fimg.png" data-filename="이미지 007.png" data-origin-width="1855" data-origin-height="867" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 34"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<h4 data-pm-slice="1 1 []" data-en-clipboard="true" data-ke-size="size20"> 완성된 프로그램 실행 화면</h4>
<div>
<div> 최종 완성된 프로그램의 결과화면은 아래와 같습니다.</div>
<p data-ke-size="size16">
<p data-ke-size="size16">1.프로그램을 실행하면 아래와 같은 모습으로 실행되며, 일단 쉬운 이해를 위해서 간략하게 2023년 2월 중 금요일 2개만, 그리고 해당 요일의 전체 티켓리스트 중 위에서부터 10개만 테스트해 보았습니다.</p>
<p data-ke-size="size16">[&#8216;2023-02-10&#8217;, &#8216;2023-02-17&#8217;]</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">아래 프로그램 실행 결과 &#8216;2023-02-10&#8217;과 &#8216;2023-02-17&#8217; 2개 금요일만 테스트하며, 2월 10일은 조건에 맞는 티켓이 없음을 알 수 있습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 005.png" data-origin-width="1055" data-origin-height="542"><span data-url="https://blog.kakaocdn.net/dn/b9YB99/btrYkKSsUXz/0HlWcUdfZ6ABdgpHoi0Dvk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/b9YB99/btrYkKSsUXz/0HlWcUdfZ6ABdgpHoi0Dvk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9YB99%2FbtrYkKSsUXz%2F0HlWcUdfZ6ABdgpHoi0Dvk%2Fimg.png" data-filename="이미지 005.png" data-origin-width="1055" data-origin-height="542" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 35"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">실제 옥션 항공 웹페이지 화면에서 확인해도 조건에 맞는 티켓이 없는 것을 알 수 있습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1227" data-origin-height="854"><span data-url="https://blog.kakaocdn.net/dn/FAPnt/btrYpmJ4leu/uPO6c7Udh9MkbOVT4Sh9Xk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/FAPnt/btrYpmJ4leu/uPO6c7Udh9MkbOVT4Sh9Xk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFAPnt%2FbtrYpmJ4leu%2FuPO6c7Udh9MkbOVT4Sh9Xk%2Fimg.png" data-origin-width="1227" data-origin-height="854" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 36"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">2. 두번째 날짜인 2월 17일의 경우 상위 10개 중 4개가 만족하여 리스트 되고 있습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 007.png" data-origin-width="1538" data-origin-height="703"><span data-url="https://blog.kakaocdn.net/dn/cMwG9X/btrYmuuQ2Jx/Q294QOp9QK6AABmEJIR661/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/cMwG9X/btrYmuuQ2Jx/Q294QOp9QK6AABmEJIR661/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMwG9X%2FbtrYmuuQ2Jx%2FQ294QOp9QK6AABmEJIR661%2Fimg.png" data-filename="이미지 007.png" data-origin-width="1538" data-origin-height="703" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 37"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">실제 옥션 항공 웹페이지 화면 확인 결과 아래 4개가 만족하여 리스트되고 있는 것을 확인 할 수 있습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 008.png" data-origin-width="1280" data-origin-height="833"><span data-url="https://blog.kakaocdn.net/dn/mgntB/btrYidIdPa5/aweXJBlsVj8t7WphWQAwMk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/mgntB/btrYidIdPa5/aweXJBlsVj8t7WphWQAwMk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmgntB%2FbtrYidIdPa5%2FaweXJBlsVj8t7WphWQAwMk%2Fimg.png" data-filename="이미지 008.png" data-origin-width="1280" data-origin-height="833" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 38"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">다음글에서는 이전 글들을 조합하여 실제 우리가 원하는 금요일 티켓의 17~21시 사이 티켓들 중에서 가격이 가장싼 티켓을 선택하여 나에게 메신저로 알려주는 방법에 대하여 알아 보겠습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style5" />
<div></div>
<div></div>
<p data-ke-size="size16">
<h4 data-ke-size="size20">O 주요 내용</h4>
<p data-ke-size="size16">
<p data-ke-size="size16">1. 소스를 살펴보겠습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">다른 부분은 이전 글의 소스와 모두 동일하므로 달라진 부분만 설명드리겠습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">print(airline_ticket_df) &lt;&#8211; (1) 수집한 티켓정보를 데이터 프레임 형식을 표시(아래 참고)</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="581" data-origin-height="85"><span data-url="https://blog.kakaocdn.net/dn/bnZLWY/btrYphB02de/juicsLf30NLeRTFkRodVz0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bnZLWY/btrYphB02de/juicsLf30NLeRTFkRodVz0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnZLWY%2FbtrYphB02de%2FjuicsLf30NLeRTFkRodVz0%2Fimg.png" data-origin-width="581" data-origin-height="85" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 39"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">    try:<br />
print(airline_ticket_df.loc[airline_ticket_df[&#8220;편도1인요금&#8221;].idxmin()]) &lt;&#8211; (2) 데이터프레임에서 &#8216;편도1인요금&#8217; 컬럼 중 숫자가 가장작은 부분을 상세하게 출력</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="292" data-origin-height="116"><span data-url="https://blog.kakaocdn.net/dn/bUFaMR/btrYjeUlWzj/nS0BcwJF57ajzaandnknO0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bUFaMR/btrYjeUlWzj/nS0BcwJF57ajzaandnknO0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUFaMR%2FbtrYjeUlWzj%2FnS0BcwJF57ajzaandnknO0%2Fimg.png" data-origin-width="292" data-origin-height="116" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 40"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">        print(airline_ticket_df[&#8216;편도1인요금&#8217;].min()) &lt;&#8211; (3) 데이터프레임에서 &#8216;편도1인요금&#8217; 컬럼 중 가장 작은 숫자만 표시</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="72" data-origin-height="27"><span data-url="https://blog.kakaocdn.net/dn/qzmso/btrYj11h58I/ZnMuZXFIkTm5MRi84M96bK/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/qzmso/btrYj11h58I/ZnMuZXFIkTm5MRi84M96bK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqzmso%2FbtrYj11h58I%2FZnMuZXFIkTm5MRi84M96bK%2Fimg.png" data-origin-width="72" data-origin-height="27" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 41"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
except:<br />
pass<br />
print(k, &#8221; 일자는 조건을 만족하는 티켓이 없습니다.&#8221;)</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1456" data-origin-height="489"><span data-url="https://blog.kakaocdn.net/dn/bEiyiB/btrYlu9GJp1/yQPLk5i1UwfYHsby7i48n0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bEiyiB/btrYlu9GJp1/yQPLk5i1UwfYHsby7i48n0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEiyiB%2FbtrYlu9GJp1%2FyQPLk5i1UwfYHsby7i48n0%2Fimg.png" data-origin-width="1456" data-origin-height="489" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 42"></span></figure>
<p>&nbsp;</p>
</div>
<p data-ke-size="size16">
<h4 data-pm-slice="1 1 []" data-en-clipboard="true" data-ke-size="size20">완성된 프로그램 실행 화면</h4>
<div data-pm-slice="1 1 []" data-en-clipboard="true"></div>
<p data-ke-size="size16">
<div> &#8211; 최종 완성된 프로그램의 결과화면은 아래와 같습니다.</div>
<p data-ke-size="size16">
<p data-ke-size="size16">1.프로그램을 실행하면 아래와 같은 모습으로 실행되며, 아래 프로그램을 실행한 시점은 2월 8일, 따라서 2월~3월의 금요일인 2/10~3/31까지 총 8번에 걸쳐 티켓정보를 수집합니다.</p>
<p data-ke-size="size16">[&#8216;2023-02-10&#8217;, &#8216;2023-02-17&#8217;, &#8216;2023-02-24&#8217;, &#8216;2023-03-03&#8217;, &#8216;2023-03-10&#8217;, &#8216;2023-03-17&#8217;, &#8216;2023-03-24&#8217;, &#8216;2023-03-31&#8217;]</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 001.png" data-origin-width="1448" data-origin-height="958"><span data-url="https://blog.kakaocdn.net/dn/lJlXq/btrYphD2JU6/sPCcJXmMtKFgTMw3prUyiK/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/lJlXq/btrYphD2JU6/sPCcJXmMtKFgTMw3prUyiK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlJlXq%2FbtrYphD2JU6%2FsPCcJXmMtKFgTMw3prUyiK%2Fimg.png" data-filename="이미지 001.png" data-origin-width="1448" data-origin-height="958" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 43"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">2.아래와 같이 파이썬의 셀레니움으로 크롬 브라우저를 자동으로 띄워 원하는 일자의 티켓정보를 수집하기위해 자동으로 클릭하기 시작합니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 002.png" data-origin-width="1103" data-origin-height="938"><span data-url="https://blog.kakaocdn.net/dn/Jleh1/btrYqTh9jOW/tEZiwlTGuxWEb4wFnRRyvk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/Jleh1/btrYqTh9jOW/tEZiwlTGuxWEb4wFnRRyvk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJleh1%2FbtrYqTh9jOW%2FtEZiwlTGuxWEb4wFnRRyvk%2Fimg.png" data-filename="이미지 002.png" data-origin-width="1103" data-origin-height="938" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 44"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">3. 파이썬의 크롤링 기법으로 2개월치 데이터를 가져오고 있습니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 003.png" data-origin-width="977" data-origin-height="831"><span data-url="https://blog.kakaocdn.net/dn/bUjSWS/btrYrUOnMXM/K56kMn0dCS8y8ES8gYHmk1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bUjSWS/btrYrUOnMXM/K56kMn0dCS8y8ES8gYHmk1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUjSWS%2FbtrYrUOnMXM%2FK56kMn0dCS8y8ES8gYHmk1%2Fimg.png" data-filename="이미지 003.png" data-origin-width="977" data-origin-height="831" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 45"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">4. 텔레그램 메신저에 해당 일자의 최저가 티켓 정보와 나머지 티켓 정보도 확인할 수 있도록 파일로 보내줍니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 004.png" data-origin-width="861" data-origin-height="864"><span data-url="https://blog.kakaocdn.net/dn/czRcbn/btrYr9xRBRf/uyCACK2FOjwHAACGhvUH4K/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/czRcbn/btrYr9xRBRf/uyCACK2FOjwHAACGhvUH4K/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczRcbn%2FbtrYr9xRBRf%2FuyCACK2FOjwHAACGhvUH4K%2Fimg.png" data-filename="이미지 004.png" data-origin-width="861" data-origin-height="864" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 46"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16"> 5. 파일 탐색기에서 확인한 결과 파일로 티켓의 정보가 잘 저장되고 있는 것을 확인할 수 있습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 005.png" data-origin-width="1022" data-origin-height="545"><span data-url="https://blog.kakaocdn.net/dn/1Tl5c/btrYroviAtI/FKk8AEftk1pL1xtxTnt6O1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/1Tl5c/btrYroviAtI/FKk8AEftk1pL1xtxTnt6O1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1Tl5c%2FbtrYroviAtI%2FFKk8AEftk1pL1xtxTnt6O1%2Fimg.png" data-filename="이미지 005.png" data-origin-width="1022" data-origin-height="545" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 47"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">6. 2/10일자 파일을 열어보니 파일 내용에 티켓의 세부정보가 잘 저장된 것을 확인 할 수 있습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 006.png" data-origin-width="1043" data-origin-height="884"><span data-url="https://blog.kakaocdn.net/dn/dUFB9z/btrYq44RXN9/dlxEHlAlKAD6q1zBaoTos1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/dUFB9z/btrYq44RXN9/dlxEHlAlKAD6q1zBaoTos1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdUFB9z%2FbtrYq44RXN9%2FdlxEHlAlKAD6q1zBaoTos1%2Fimg.png" data-filename="이미지 006.png" data-origin-width="1043" data-origin-height="884" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 48"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">7. 3/31일자까지 모두 자동 수행 후 모든 파일이 탐색기에 저장된 것을 볼 수 있습니다. 다만, 프로그램을 실행한 날짜가 2/8 이므로 그 전 날짜의 티켓인 2/3일자 티켓은 제외하고 나머지 2~3월 금요일의 모든 티켓정보가 저장되었습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="741" data-origin-height="737"><span data-url="https://blog.kakaocdn.net/dn/eN4oy9/btrYvm4numV/FCyKQ1Dwh6it2VLorldyWk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/eN4oy9/btrYvm4numV/FCyKQ1Dwh6it2VLorldyWk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeN4oy9%2FbtrYvm4numV%2FFCyKQ1Dwh6it2VLorldyWk%2Fimg.png" data-origin-width="741" data-origin-height="737" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 49"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">
<p data-ke-size="size16">8. 메신저로도 모두 최저가 정보와 모든 티켓정보가 담긴 파일로 잘 수신되었습니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 008.png" data-origin-width="1047" data-origin-height="968"><span data-url="https://blog.kakaocdn.net/dn/cfEtql/btrYqAiW5Tv/0ynLBg5vJ5V5Xyg69hvlR0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/cfEtql/btrYqAiW5Tv/0ynLBg5vJ5V5Xyg69hvlR0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfEtql%2FbtrYqAiW5Tv%2F0ynLBg5vJ5V5Xyg69hvlR0%2Fimg.png" data-filename="이미지 008.png" data-origin-width="1047" data-origin-height="968" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 50"></span></figure>
<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style5" />
<p data-ke-size="size16"> 세부 내용</p>
<h4 data-ke-size="size20">O 완성된 소스</h4>
<p data-ke-size="size16">소스 : 1.py</p>
<pre id="code_1679754120731" class="python" data-ke-language="python" data-ke-type="codeblock"><code class="hljs"><span class="hljs-keyword">import</span> datetime
<span class="hljs-keyword">from</span> datetime <span class="hljs-keyword">import</span> datetime, timedelta, date
<span class="hljs-keyword">from</span> dateutil <span class="hljs-keyword">import</span> relativedelta
<span class="hljs-keyword">from</span> selenium <span class="hljs-keyword">import</span> webdriver <span class="hljs-comment"># pip install selenium</span>
<span class="hljs-keyword">from</span> selenium.webdriver.common.by <span class="hljs-keyword">import</span> By
<span class="hljs-keyword">import</span> time
<span class="hljs-keyword">from</span> openpyxl <span class="hljs-keyword">import</span> Workbook
<span class="hljs-keyword">import</span> pandas <span class="hljs-keyword">as</span> pd
<span class="hljs-keyword">from</span> selenium.webdriver.common.keys <span class="hljs-keyword">import</span> Keys
<span class="hljs-keyword">from</span> bs4 <span class="hljs-keyword">import</span> BeautifulSoup
<span class="hljs-keyword">import</span> telegram


<span class="hljs-keyword">import</span> pandas <span class="hljs-keyword">as</span> pd


<span class="hljs-comment"># 텔레그램 설정 부분</span>
bot = telegram.Bot(token=<span class="hljs-string">'자산의 텔레그램 봇 엑세스 키'</span>)


<span class="hljs-comment">###################################################</span>
<span class="hljs-comment"># 1. 금요일의 날짜를 구하여 리스트에 담기</span>
<span class="hljs-comment">###################################################</span>
today = date.today()


<span class="hljs-comment">#해당 달의 첫째날 구하기</span>
first_day = today.replace(day=<span class="hljs-number">1</span>)

this_month = datetime(today.year, today.month, day=<span class="hljs-number">1</span>)
next_2month = this_month + relativedelta.relativedelta(months=<span class="hljs-number">2</span>)
last_day = next_2month - timedelta(days=<span class="hljs-number">1</span>)
<span class="hljs-built_in">print</span>(last_day.strftime(<span class="hljs-string">"%Y%m%d"</span>))
endDate = last_day.strftime(<span class="hljs-string">"%Y%m%d"</span>)

startDate = datetime.today().strftime(<span class="hljs-string">"%Y%m%d"</span>)

dt_index = pd.date_range(start=startDate, end=endDate)


dt_list = dt_index.strftime(<span class="hljs-string">"%Y.%m.%d"</span>).tolist()


fridays = []

<span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> dt_list:
    i = datetime.strptime(i, <span class="hljs-string">'%Y.%m.%d'</span>)
    <span class="hljs-keyword">if</span> i.weekday() == <span class="hljs-number">4</span>:
        j = <span class="hljs-built_in">str</span>(i)
        fridays.append(j[:<span class="hljs-number">10</span>])

<span class="hljs-built_in">print</span>(fridays)
<span class="hljs-comment"># ['2023-01-06', '2023-01-13', '2023-01-20', '2023-01-27']</span>


<span class="hljs-comment">###################################################</span>
<span class="hljs-comment"># 2. 셀레니움으로 옥션 항공티켓 정보 가져오기</span>
<span class="hljs-comment">###################################################</span>

browser =webdriver.Chrome(<span class="hljs-string">"chromedriver.exe"</span>)


j = <span class="hljs-number">3</span> <span class="hljs-comment"># j는 1은 첫째주, 2는 둘째주, 3은 셋째주, 4는 네째주임</span>
l = <span class="hljs-number">1</span> <span class="hljs-comment"># 1이면 가는날 창의 완쪽, 2이면 가는날 창의 오른쪽임</span>

<span class="hljs-keyword">for</span> k <span class="hljs-keyword">in</span> fridays:
    time.sleep(<span class="hljs-number">2</span>)
    browser.get(<span class="hljs-string">"http://air.auction.co.kr/au/init/lp/lpMain.do"</span>)

    time.sleep(<span class="hljs-number">2</span>)
    browser.find_element(By.XPATH,<span class="hljs-string">'//*[@id="tour_wrap"]/div[1]/div[1]/a[2]/span[1]'</span>).click() <span class="hljs-comment"># 국내항공</span>

    time.sleep(<span class="hljs-number">2</span>)
    browser.find_element(By.XPATH,<span class="hljs-string">'//*[@id="tour_wrap"]/div[1]/div[4]/div[2]/div[3]/a[1]'</span>).click() <span class="hljs-comment"># 편도</span>
    time.sleep(<span class="hljs-number">2</span>)
    browser.find_element(By.XPATH,<span class="hljs-string">'//*[@id="tour_wrap"]/div[1]/div[4]/div[2]/div[4]/div[4]/div[1]/div/span'</span>).click() <span class="hljs-comment"># 가는날</span>
    time.sleep(<span class="hljs-number">2</span>)


    browser.find_element(By.XPATH,<span class="hljs-string">'//*[@id="ui-datepicker-div"]/div['</span>+<span class="hljs-built_in">str</span>(l)+<span class="hljs-string">']/table/tbody/tr['</span>+<span class="hljs-built_in">str</span>(j)+<span class="hljs-string">']/td[6]/a'</span>).click() <span class="hljs-comment"># 1/6 일</span>
    time.sleep(<span class="hljs-number">1</span>)


    browser.find_element(By.XPATH,<span class="hljs-string">'//*[@id="tour_wrap"]/div[1]/div[4]/div[4]/a/span'</span>).click() <span class="hljs-comment"># 검색하기</span>
    time.sleep(<span class="hljs-number">15</span>)


    html_souce = browser.page_source
    soup = BeautifulSoup(html_souce, <span class="hljs-string">'html.parser'</span>)

    ticket_list = soup.find(class_=<span class="hljs-string">'simplebar-content'</span>).find_all(class_=<span class="hljs-string">'gt_offer_list_item srpResultLi'</span>)
    <span class="hljs-built_in">print</span>(<span class="hljs-built_in">type</span>(ticket_list))
    <span class="hljs-built_in">print</span>(<span class="hljs-built_in">len</span>(ticket_list))

    <span class="hljs-built_in">print</span>(<span class="hljs-string">"========================================================================"</span>)
    <span class="hljs-built_in">print</span>(ticket_list[<span class="hljs-number">0</span>])
    <span class="hljs-built_in">print</span>(ticket_list[<span class="hljs-number">0</span>].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_company'</span>).text.strip())
    <span class="hljs-built_in">print</span>(ticket_list[<span class="hljs-number">0</span>].select(<span class="hljs-string">'div.gt_offer_col.gt_offer_company &gt; img'</span>)[<span class="hljs-number">0</span>][<span class="hljs-string">'alt'</span>],<span class="hljs-string">"+++++++++++++"</span>)
    <span class="hljs-built_in">print</span>(ticket_list[<span class="hljs-number">0</span>].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_time'</span>).text.strip())
    <span class="hljs-built_in">print</span>(ticket_list[<span class="hljs-number">0</span>].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_level'</span>).text.strip())
    <span class="hljs-built_in">print</span>(ticket_list[<span class="hljs-number">0</span>].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_vender'</span>).text.strip())
    <span class="hljs-built_in">print</span>(ticket_list[<span class="hljs-number">0</span>].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_seats2'</span>).text.strip())
    <span class="hljs-built_in">print</span>(ticket_list[<span class="hljs-number">0</span>].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_price2'</span>).text.strip())



    companys = []
    times_ = []
    levels = []
    venders = []
    seats = []
    prices = []

    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(<span class="hljs-built_in">len</span>(ticket_list)):
        time_ = ticket_list[i].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_time'</span>).text.strip()
        time_ = time_[<span class="hljs-number">0</span>:<span class="hljs-number">5</span>]
        dateFormatter = <span class="hljs-string">"%H:%M"</span> <span class="hljs-comment"># 날짜 포멧 맞추기</span>
        mytime = datetime.strptime(time_, dateFormatter)
        first_time = datetime.strptime(<span class="hljs-string">"17:00"</span>, dateFormatter)
        last_time = datetime.strptime(<span class="hljs-string">"21:00"</span>, dateFormatter)


        <span class="hljs-keyword">if</span> mytime &gt; first_time <span class="hljs-keyword">and</span> mytime &lt; last_time:
            company = ticket_list[i].select(<span class="hljs-string">'div.gt_offer_col.gt_offer_company &gt; img'</span>)[<span class="hljs-number">0</span>][<span class="hljs-string">'alt'</span>]
            time_ = ticket_list[i].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_time'</span>).text.strip()
            level = ticket_list[i].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_level'</span>).text.strip()
            vender = ticket_list[i].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_vender'</span>).text.strip()
            seat = ticket_list[i].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_seats2'</span>).text.strip()
            price = ticket_list[i].find(<span class="hljs-string">"div"</span>,class_=<span class="hljs-string">'gt_offer_col gt_offer_price2'</span>).text.strip().replace(<span class="hljs-string">'스마일페이 결제 가능'</span>,<span class="hljs-string">''</span>).replace(<span class="hljs-string">','</span>,<span class="hljs-string">''</span>)

            <span class="hljs-built_in">print</span>(company, time_, level, vender, seat, price)

            companys.append(company)
            times_.append(time_)
            levels.append(level)
            venders.append(vender)
            seats.append(seat)
            prices.append(price)
        <span class="hljs-keyword">else</span>:
            <span class="hljs-keyword">pass</span>


    pd_data = {<span class="hljs-string">"항공사"</span> : companys, <span class="hljs-string">"출발/도착 시간"</span> : times_, <span class="hljs-string">"좌석구분"</span>: levels, <span class="hljs-string">"판매사"</span>: venders, <span class="hljs-string">"잔여좌석"</span>: seats, <span class="hljs-string">"편도1인요금"</span>: prices}
    airline_ticket_df = pd.DataFrame(pd_data)
    airline_ticket_df[<span class="hljs-string">'편도1인요금'</span>] = pd.to_numeric(airline_ticket_df[<span class="hljs-string">'편도1인요금'</span>]) <span class="hljs-comment"># 이걸 안해주면 시리즈 타입으로 .idxmin()에서 에러 발생, 숫자 타입으로 변경해 줘야 함</span>

    airline_ticket_result = <span class="hljs-string">'airline_ticket_result_'</span>+<span class="hljs-built_in">str</span>(k)+<span class="hljs-string">'.xlsx'</span>

    airline_ticket_df.to_excel(airline_ticket_result)
    time.sleep(<span class="hljs-number">1</span>)


    <span class="hljs-keyword">try</span>:
        <span class="hljs-keyword">pass</span>
        <span class="hljs-built_in">print</span>(airline_ticket_df.loc[airline_ticket_df[<span class="hljs-string">"편도1인요금"</span>].idxmin()])
        minticketInfo = airline_ticket_df.loc[airline_ticket_df[<span class="hljs-string">"편도1인요금"</span>].idxmin()]
        <span class="hljs-built_in">print</span>(airline_ticket_df[<span class="hljs-string">'편도1인요금'</span>].<span class="hljs-built_in">min</span>())


        <span class="hljs-comment"># 텔레그램으로 메시지 보내기</span>
        bot.sendMessage(chat_id=<span class="hljs-string">'본인의 챗id'</span>, text=<span class="hljs-string">'옥션 항공티켓 최저가 정보인 '</span> +airline_ticket_result+<span class="hljs-string">' 파일입니다.\n'</span>+<span class="hljs-built_in">str</span>(minticketInfo))


        <span class="hljs-comment"># 텔레그램으로 파일 보내기</span>
        bot.send_document(chat_id=<span class="hljs-string">'본인의 챗id'</span>, document=<span class="hljs-built_in">open</span>(airline_ticket_result, <span class="hljs-string">'rb'</span>), filename=airline_ticket_result)
    <span class="hljs-keyword">except</span>:
        <span class="hljs-keyword">pass</span>
        bot.sendMessage(chat_id=<span class="hljs-string">'본인의 챗id'</span>, text=<span class="hljs-built_in">str</span>(k)+<span class="hljs-string">' 날짜는 티켓정보가 없습니다.\n(해당 시간대 티켓이 없거나, 기타 다른 이유 등으로 티켓정보를 받아올 수 없습니다.) '</span>)

    <span class="hljs-built_in">print</span>(<span class="hljs-string">"========================================================================"</span>)

    j = j + <span class="hljs-number">1</span>
    <span class="hljs-keyword">if</span> j &gt; <span class="hljs-number">4</span>:
        j = <span class="hljs-number">1</span> <span class="hljs-comment"># 네번째 주가 넘어가면 다시 다음월의 첫째주가 되므로 j=1로 초기화 해주고,</span>
        l = <span class="hljs-number">2</span> <span class="hljs-comment"># 4주가 넘어가면 다음월 즉, 오른쪽 창에서 선택해야 하므로 l을 2로 바꿔줌</span></code></pre>
<p data-ke-size="size16">
<p data-ke-size="size16">
<div> &#8211; 소스파일을 cmd, 파워쉘 또는 vscode 등에서 아래와 같이 실행하시기 바랍니다.</div>
<div></div>
<p data-ke-size="size16">
<div> &gt; python 1.py</div>
<div>(실행파일(1.py)과 동일한 위치에 &#8220;chromedriver.exe&#8221;파일이 있어야 합니다.)</div>
<div></div>
<div></div>
<p data-ke-size="size16"> O 주요 내용</p>
<p data-ke-size="size16"> 1. 소스를 살펴보겠습니다.</p>
<p data-ke-size="size16"> 다른 부분은 이전 글의 소스와 모두 동일하므로 달라진 부분만 설명드리겠습니다.</p>
<p data-ke-size="size16">날짜 및 텔레그램 관련 모듈을 임포트 해주고, 메신저로 최저가 정보와 모든 티켓의 상세정보를 파일로 보낼 것이기 때문에 텔레그램 봇을 아래와 같이 설정해 줍니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 009.png" data-origin-width="842" data-origin-height="573"><span data-url="https://blog.kakaocdn.net/dn/bvl86d/btrYszpFS9f/j28Gko5hrT9JJRUiksM6Lk/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bvl86d/btrYszpFS9f/j28Gko5hrT9JJRUiksM6Lk/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbvl86d%2FbtrYszpFS9f%2Fj28Gko5hrT9JJRUiksM6Lk%2Fimg.png" data-filename="이미지 009.png" data-origin-width="842" data-origin-height="573" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 51"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16"> 2. 날짜를 수기로 넣어주는 것이 아닌, 자동으로 계산하기 위하여 아래와 같은 코드로 자동계산 하도록 코딩합니다.</p>
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 010.png" data-origin-width="1089" data-origin-height="719"><span data-url="https://blog.kakaocdn.net/dn/MLuoq/btrYszb9kDa/3NTcJx8oDwgj9uRY9fyFy1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/MLuoq/btrYszb9kDa/3NTcJx8oDwgj9uRY9fyFy1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMLuoq%2FbtrYszb9kDa%2F3NTcJx8oDwgj9uRY9fyFy1%2Fimg.png" data-filename="이미지 010.png" data-origin-width="1089" data-origin-height="719" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 52"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">3. 2개월치 데이터를 수집할 것이므로 해당월의 주차수와 왼쪽/오른쪽 창을 구분하여 셀레니움이 클릭할 수 있도록 해주어야 합니다.</p>
<p data-ke-size="size16">아래와 같이 j변수는 주차 수를 나타내며, l변수는 가는날 창의 왼쪽(1), 오른쪽(2)을 나타내고, 구분할 수 있도록 설정해 줍니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1320" data-origin-height="568"><span data-url="https://blog.kakaocdn.net/dn/bfX1U2/btrYr9xSAnR/vEZ3vkmq9dvkoodwga1Sh0/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bfX1U2/btrYr9xSAnR/vEZ3vkmq9dvkoodwga1Sh0/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfX1U2%2FbtrYr9xSAnR%2FvEZ3vkmq9dvkoodwga1Sh0%2Fimg.png" data-origin-width="1320" data-origin-height="568" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 53"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16"> 4. 이전 글에서는 테스트로 티켓 10개만 돌렸으나, 여기서는 모든 티켓을 대상으로 수행해야 하므로 해당일자의 티켓 개수만큼 루프를 돌려줍니다.</p>
<p data-ke-size="size16"> <img decoding="async" src="https://blog.kakaocdn.net/dn/ciUC9F/btrYq3EUbkT/4Tn9ZP8nlyt7jkqwxuOLKK/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciUC9F%2FbtrYq3EUbkT%2F4Tn9ZP8nlyt7jkqwxuOLKK%2Fimg.png" data-filename="이미지 012.png" data-origin-width="1134" data-origin-height="369" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 54"></p>
<p data-ke-size="size16">5. 메신저에서 최저가 티켓의 세부정보를 표시해 주려면 최저가에 해당하는 &#8216;편도1인요금&#8217; 컬럼의 값을 숫자형으로 변경해 준 후 데이터프레임의 .loc()로 가져와야 합니다. 아래와 같이 표현해 줍니다.</p>
<p data-ke-size="size16">airline_ticket_df[&#8216;편도1인요금&#8217;] = pd.to_numeric(airline_ticket_df[&#8216;편도1인요금&#8217;])</p>
<p data-ke-size="size16">그리고 난 후 가져온 티켓 정보를 엑셀 파일로 저장 후 (라인 192~194)</p>
<p data-ke-size="size16">메신저로 최저가 정보와(라인 208)</p>
<p data-ke-size="size16">생성한 엑셀파일을 첨부로 보냅니다.(라인 212)</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="1440" data-origin-height="743"><span data-url="https://blog.kakaocdn.net/dn/niW7e/btrYtSPXHe2/P7CB9tIaDngbDmWU6LPJ2K/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/niW7e/btrYtSPXHe2/P7CB9tIaDngbDmWU6LPJ2K/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FniW7e%2FbtrYtSPXHe2%2FP7CB9tIaDngbDmWU6LPJ2K%2Fimg.png" data-origin-width="1440" data-origin-height="743" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 55"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p data-ke-size="size16">6. 마지막으로 2월이 끝나면(보통 4주차) 다시 3월의 첫번째 주가 시작되므로 주차를 표시하는 j변수가 4보다 크면 1로 초기화 시켜 줍니다.</p>
<p data-ke-size="size16">
<p data-ke-size="size16">그리고 오션의 티켓을 예매하는 화면이 좌(2월), 우(3월)로 구분되어 있으므로 셀레니움으로 클릭시 이를 구분해 주어야 합니다.</p>
<p data-ke-size="size16">그래서 l변수에 왼쪽 창을 1로, 오른쪽 창을 2로 구분해 주고, 다음월로 넘어갈때(즉, 위의 j변수가 4보다 클때) l변수를 2로 만들어 주었습니다.</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-filename="이미지 014.png" data-origin-width="1013" data-origin-height="380"><span data-url="https://blog.kakaocdn.net/dn/bLiOqo/btrYqvIOoCU/8Bla4isn784bWgbFSjchT1/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/bLiOqo/btrYqvIOoCU/8Bla4isn784bWgbFSjchT1/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLiOqo%2FbtrYqvIOoCU%2F8Bla4isn784bWgbFSjchT1%2Fimg.png" data-filename="이미지 014.png" data-origin-width="1013" data-origin-height="380" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 56"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
<p>&nbsp;</p>
<figure class="imageblock alignCenter" data-ke-mobilestyle="widthOrigin" data-origin-width="696" data-origin-height="331"><span data-url="https://blog.kakaocdn.net/dn/dMwFAQ/btrYtvUU7Ze/NBZdkNN2Mkd6d1hnxG5U41/img.png" data-lightbox="lightbox"><img decoding="async" src="https://blog.kakaocdn.net/dn/dMwFAQ/btrYtvUU7Ze/NBZdkNN2Mkd6d1hnxG5U41/img.png" srcset="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdMwFAQ%2FbtrYtvUU7Ze%2FNBZdkNN2Mkd6d1hnxG5U41%2Fimg.png" data-origin-width="696" data-origin-height="331" alt="img" title="옥션 최저가 항공권 텔레그램 메세지 받기 파이썬 프로그램 57"></span></figure>
<p>&nbsp;</p>
<p data-ke-size="size16">
</div>
<!-- CONTENT END 1 -->
]]></content:encoded>
					
		
		
		<media:content url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlQVyCahjVQc8KYtxZKaJGGEdigmfP9boR0R0b_fB6gDSEx-p3sYeIYc0bwjvbFe7p2neVRFZ22bNT9ggOv-KST-Quff5vXvlrHtnVEHnzOkMpmQhzxvmNCVP0QSBX6vZOq3p3gBrn8lhleMsVs9Y7G7Ol55MWg_ahhF3Yw6ZvOIzuA2pFtrnLQdattaRe/w400-h400/%E1%84%8C%E1%85%A6%E1%84%86%E1%85%A9%E1%86%A8%E1%84%8B%E1%85%B3%E1%86%AF-%E1%84%8B%E1%85%B5%E1%86%B8%E1%84%85%E1%85%A7%E1%86%A8%E1%84%92%E1%85%A2%E1%84%8C%E1%85%AE%E1%84%89%E1%85%A6%E1%84%8B%E1%85%AD_-011.png" medium="image"></media:content>
            	</item>
	</channel>
</rss>
