เชฒเซเชเชจเชพ เชฒเซเชเช, เชเซเชจเซ เช เชจเซเชตเชพเชฆ เช เชฎเซ เชเชเซ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช, เชคเซ เชเชนเซ เชเซ เชเซ เชคเซเชจเซเช เชฒเชเซเชทเซเชฏ เชธเซเชฒเซเชจเชฟเชฏเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเชพเชฏเชฅเซเชจเชฎเชพเช เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฐเชจเชพ เชตเชฟเชเชพเชธ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเชตเชพเชจเซเช เชเซ, เชเซ เชเชฐเชฒเชพเชเชจ เชเชฟเชเชฟเชเชจเชพ เชญเชพเชตเชจเซ เชถเซเชง เชเชฐเซ เชเซ. เชเชฟเชเชฟเชเชจเซ เชถเซเชง เชเชฐเชคเซ เชตเชเชคเซ, เชฒเชตเชเซเช เชคเชพเชฐเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ (+- เชเชฒเซเชฒเซเชเชฟเชค เชคเชพเชฐเซเชเซเชจเซ เชคเซเชฒเชจเชพเชฎเชพเช 3 เชฆเชฟเชตเชธ). เชธเซเชเซเชฐเซเชชเชฐ เชถเซเชง เชชเชฐเชฟเชฃเชพเชฎเซเชจเซ เชเชเซเชธเซเชฒ เชซเชพเชเชฒเชฎเชพเช เชธเชพเชเชตเซ เชเซ เช เชจเซ เชถเซเชง เชเชฒเชพเชตเชจเชพเชฐ เชตเซเชฏเชเซเชคเชฟเชจเซ เชคเซเช เชเซ เชฎเชณเซเชฏเซเช เชคเซเชจเชพ เชธเชพเชฐเชพเชเชถ เชธเชพเชฅเซ เชเชฎเซเชฒ เชฎเซเชเชฒเซ เชเซ. เช เชชเซเชฐเซเชเซเชเซเชเชจเซ เชงเซเชฏเซเชฏ เชชเซเชฐเชตเชพเชธเซเชเชจเซ เชถเซเชฐเซเชทเซเช เชกเซเชฒ เชถเซเชงเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเชตเชพเชจเซ เชเซ.
เชเซ, เชธเชพเชฎเชเซเชฐเซเชจเซ เชธเชฎเชเชคเซ เชตเชเชคเซ, เชคเชฎเซ เชเซเชตเชพเช เชเชฏเชพ เชเซ, เชคเซ เชเช เชจเชเชฐ เชจเชพเชเซ
เชเชชเชฃเซ เชถเซเช เชเซเชตเชพ เชเช เชฐเชนเซเชฏเชพ เชเซเช?
เชคเชฎเซ เชคเชฎเชพเชฐเซ เชเชเซเชเชพ เชฎเซเชเชฌ เช
เชนเซเช เชตเชฐเซเชฃเชตเซเชฒ เชธเชฟเชธเซเชเชฎเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชธเซเชตเชคเชเชคเซเชฐ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฎเซเช เชคเซเชจเซ เชเชชเชฏเซเช เชฎเชพเชฐเชพ เชตเชคเชจเชจเชพ เชธเชชเซเชคเชพเชนเชจเชพ เชชเซเชฐเชตเชพเชธเซ เช
เชจเซ เชเชฟเชเชฟเชเซ เชถเซเชงเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฏเซ เชนเชคเซ. เชเซ เชคเชฎเซ เชจเชซเชพเชเชพเชฐเช เชเชฟเชเชฟเชเซ เชถเซเชงเชตเชพ เชฎเชพเชเซ เชเชเชญเซเชฐ เชเซ, เชคเซ เชคเชฎเซ เชธเชฐเซเชตเชฐ เชชเชฐ เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเซ เชถเชเซ เชเซ (เชธเชฐเชณ
เชฎเชจเซ เชนเชเซ เชธเซเชงเซ เชญเซเชฒเซ เชธเชพเชฅเซเชจเชพ เชเซเชฐเชฟเชซ เชฎเชณเซเชฏเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เชคเซ เชถเชเซเชฏ เชเซ
เชถเซเชง เชเชฐเชคเซ เชตเชเชคเซ, เชชเชนเซเชฒเซเชฅเซ เช เชเชฒเซเชฒเซเช เชเชฐเซเชฏเซ เชเซ เชคเซเชฎ, "เชฒเชตเชเซเช เชคเชพเชฐเซเช" เชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ; เชธเซเชเซเชฐเชฟเชชเซเช เชเชชเซเชฒ เชคเชพเชฐเซเชเซเชจเชพ เชคเซเชฐเชฃ เชฆเชฟเชตเชธเชจเซ เช เชเชฆเชฐเชจเซ เชเชซเชฐเซเชธ เชถเซเชงเซ เชเซ. เชเซ เชเซ เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเชคเซ เชตเชเชคเซ, เชคเซ เชฎเชพเชคเซเชฐ เชเช เช เชฆเชฟเชถเชพเชฎเชพเช เชเชซเชฐเซเชธ เชถเซเชงเซ เชเซ, เชคเซเชจเซ เชธเชเชถเซเชงเชฟเชค เชเชฐเชตเซเช เชธเชฐเชณ เชเซ เชเซเชฅเซ เชคเซ เชเชฃเซ เชซเซเชฒเชพเชเช เชฆเชฟเชถเชพเช เชชเชฐ เชกเซเชเชพ เชเชเชคเซเชฐเชฟเชค เชเชฐเซ เชถเชเซ. เชคเซเชจเซ เชธเชนเชพเชฏเชฅเซ, เชคเชฎเซ เชญเซเชฒเชญเชฐเซเชฒเชพ เชเซเชฐเชฟเชซ เชชเชฃ เชถเซเชงเซ เชถเชเซ เชเซ; เชเชตเชพ เชถเซเชงเซ เชเซเชฌ เช เชฐเชธเชชเซเชฐเชฆ เชนเซเช เชถเชเซ เชเซ.
เชคเชฎเชพเชฐเซ เชฌเซเชเชพ เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฐเชจเซ เชถเชพ เชฎเชพเชเซ เชเชฐเซเชฐ เชเซ?
เชเซเชฏเชพเชฐเซ เชฎเซเช เชชเซเชฐเชฅเชฎ เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฟเชเช เชถเชฐเซ เชเชฐเซเชฏเซเช, เชคเซเชฏเชพเชฐเซ เชฎเชจเซ เชชเซเชฐเชพเชฎเชพเชฃเชฟเชเชชเชฃเซ เชคเซเชฎเชพเช เชเชพเชธ เชฐเชธ เชจเชนเซเชคเซ. เชนเซเช เช เชจเซเชฎเชพเชจเชฟเชค เชฎเซเชกเซเชฒเชฟเชเช, เชจเชพเชฃเชพเชเซเชฏ เชตเชฟเชถเซเชฒเซเชทเชฃ เช เชจเซ, เชธเชเชญเชตเชคเช, เชชเชพเช เซเชจเชพ เชญเชพเชตเชจเชพเชคเซเชฎเช เชฐเชเชเชจเชพ เชตเชฟเชถเซเชฒเซเชทเชฃเชจเชพ เชเซเชทเซเชคเซเชฐเชฎเชพเช เชตเชงเซ เชชเซเชฐเซเชเซเชเซเชเซเชธ เชเชฐเชตเชพ เชฎเชพเชเชเชคเซ เชนเชคเซ. เชชเชฐเชเชคเซ เชคเซ เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช เชเซ เชเซ เชตเซเชฌเชธเชพเชเชเซเชธเชฎเชพเชเชฅเซ เชกเซเชเชพ เชเชเชคเซเชฐเชฟเชค เชเชฐเชคเชพ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซเชตเซ เชฐเซเชคเซ เชฌเชจเชพเชตเชตเซ เชคเซ เชถเซเชงเชตเชพเชจเซเช เชเซเชฌ เช เชฐเชธเชชเซเชฐเชฆ เชนเชคเซเช. เชเซเชฎ เชเซเชฎ เชนเซเช เช เชตเชฟเชทเชฏเชฎเชพเช เชเชฏเซ เชคเซเชฎ, เชฎเชจเซ เชธเชฎเชเชพเชฏเซเช เชเซ เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฟเชเช เช เชเชจเซเชเชฐเชจเซเชเชจเซเช "เชเชจเซเชเชฟเชจ" เชเซ.
เชคเชฎเซ เชตเชฟเชเชพเชฐเซ เชถเชเซ เชเซ เชเซ เช เชเซเชฌ เชฌเซเชฒเซเชก เชจเชฟเชตเซเชฆเชจ เชเซ. เชชเชฐเชเชคเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซ เชเซ เชเซเชเชฒเซ เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฐเชฅเซ เชถเชฐเซเชเชค เชเชฐเซ เชนเชคเซ เชเซ เชฒเซเชฐเซ เชชเซเชเซ เชเชพเชตเชพ เช เชจเซ เชชเชพเชฏเชฅเซเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฌเชจเชพเชตเซ เชนเชคเซ. เชเซเชเชฒ เชฐเซเชฌเซเชเซเชธ เชเชจเซเชเชฐเชจเซเชเชจเซ เชถเซเชง เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซ, เชคเซเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชคเซเชฎเชจเชพ เชชเซเชฐเชถเซเชจเซเชจเชพ เชถเซเชฐเซเชทเซเช เชเชตเชพเชฌเซ เชเชชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซ. เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฟเชเชเชจเชพ เช เชจเชเชค เชเชชเชฏเซเชเซ เชเซ, เช เชจเซ เชเซ เชคเชฎเชจเซ เชกเซเชเชพ เชธเชพเชฏเชจเซเชธเชฎเชพเช เชเชเชเช เชฌเซเชเซเช เชฐเชธ เชนเซเชฏ เชคเซ เชชเชฃ, เชคเชฎเชพเชฐเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชกเซเชเชพ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชเซเชเชฒเซเช เชธเซเชเซเชฐเซเชชเชฟเชเช เชเซเชถเชณเชคเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ.
เชฎเชจเซ เช
เชนเซเช เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชคเซ เชเซเชเชฒเซเช เชคเชเชจเซเชเซ เช
เชฆเซเชญเซเชค เชฎเชณเซ
เชถเซเช เชคเชฎเชจเซ เชฎเซเชธเชพเชซเชฐเซ เชเชฐเชตเซ เชเชฎเซ เชเซ ?!
เช เชตเชฟเชญเชพเชเชจเชพ เชถเซเชฐเซเชทเชเชฎเชพเช เชชเซเชเชตเชพเชฎเชพเช เชเชตเซเชฒเชพ เชธเชฐเชณ เช เชจเซ เชคเซเชจเชพ เชฌเชฆเชฒเซ เชนเชพเชจเชฟเชเชพเชฐเช เชชเซเชฐเชถเซเชจ เชฎเชพเชเซ, เชคเชฎเซ เชเชฃเซเชตเชพเชฐ เชธเชเชพเชฐเชพเชคเซเชฎเช เชเชตเชพเชฌ เชธเชพเชเชญเชณเซ เชถเชเซ เชเซ, เชเซเชจเซ เชธเชพเชฅเซ เชคเซ เชตเซเชฏเชเซเชคเชฟเชจเซ เชฎเซเชธเชพเชซเชฐเซเชจเซ เชเซเชเชฒเซเช เชตเชพเชฐเซเชคเชพเช เชธเชพเชฅเซ, เชเซเชจเซ เชคเซ เชชเซเชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช. เชเชชเชฃเชพเชฎเชพเชเชฅเซ เชฎเซเชเชพเชญเชพเชเชจเชพ เชฒเซเชเซ เชธเชเชฎเชค เชฅเชถเซ เชเซ เชจเชตเชพ เชธเชพเชเชธเซเชเซเชคเชฟเช เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช เชคเชฎเชพเชฐเซ เชเชพเชคเชจเซ เชฒเซเชจ เชเชฐเชตเชพ เช เชจเซ เชคเชฎเชพเชฐเซ เชเซเชทเชฟเชคเชฟเชเซเชจเซ เชตเชฟเชธเซเชคเซเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฎเซเชธเชพเชซเชฐเซ เช เชเช เชธเชฐเชธ เชฐเซเชค เชเซ. เชเซ เชเซ, เชเซ เชคเชฎเซ เชเซเชเชจเซ เชชเซเชเซ เชเซ เชถเซเช เชคเซเช เชเชฐเชฒเชพเชเชจ เชเชฟเชเชฟเช เชถเซเชงเชตเชพเชจเซเช เชชเชธเชเชฆ เชเชฐเซ เชเซ, เชคเซ เชฎเชจเซ เชเชพเชคเชฐเซ เชเซ เชเซ เชเชตเชพเชฌ เชเชเชฒเซ เชนเชเชพเชฐเชพเชคเซเชฎเช เชจเชนเซเช เชนเซเชฏ. เชตเชพเชธเซเชคเชตเชฎเชพเช, เชชเชพเชฏเชฅเซเชจ เช เชนเซเช เช เชฎเชพเชฐเซ เชฎเชฆเชฆ เชฎเชพเชเซ เชเชตเซ เชเซ.
เชเชฐ เชเชฟเชเชฟเชเซ เชชเชฐ เชฎเชพเชนเชฟเชคเซ เชถเซเชงเชตเชพ เชฎเชพเชเซ เชธเชฟเชธเซเชเชฎ เชฌเชจเชพเชตเชตเชพเชจเชพ เชฎเชพเชฐเซเช เชชเชฐ เชเชชเชฃเซ เชเซ เชชเชนเซเชฒเซเช เชเชพเชฐเซเชฏ เชนเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชคเซ เชฏเซเชเซเชฏ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซเช เชเซ เชเซเชฎเชพเชเชฅเซ เช เชฎเซ เชฎเชพเชนเชฟเชคเซ เชฒเชเชถเซเช. เช เชธเชฎเชธเซเชฏเชพเชจเซ เชเชเซเชฒ เชฎเชพเชฐเชพ เชฎเชพเชเซ เชธเชฐเชณ เชจ เชนเชคเซ, เชชเชฐเชเชคเซ เช เชเชคเซ เชฎเซเช เชเชพเชฏเช เชธเซเชตเชพ เชชเชธเชเชฆ เชเชฐเซ. เชฎเซเช เชฎเซเชฎเซเชจเซเชกเซ, เชธเซเชเชพเชฏเชธเซเชเซเชจเชฐ, เชเชเซเชธเชชเซเชกเชฟเชฏเชพ เช เชจเซ เช เชจเซเชฏ เชเซเชเชฒเชพเชเชจเซ เชธเซเชตเชพเช เช เชเชฎเชพเชตเซ, เชชเชฐเชเชคเซ เช เชธเชเชธเชพเชงเชจเซ เชชเชฐ เชฐเซเชฌเซเช เชธเชเชฐเชเซเชทเชฃ เชฎเชฟเชเซเชจเชฟเชเชฎเซเชธ เช เชญเซเชฆเซเชฏ เชนเชคเชพ. เชเชฃเชพ เชชเซเชฐเชฏเชคเซเชจเซ เชชเชเซ, เชเซ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฎเชพเชฐเซ เชเซเชฐเชพเชซเชฟเช เชฒเชพเชเช, เชชเชเชชเชพเชณเชพ เชเซเชฐเซเชธเชฟเชเช เช เชจเซ เชธเชพเชฏเชเชฒเชจเซ เชธเชพเชฎเชจเซ เชเชฐเชตเซ เชชเชกเซเชฏเซ เชนเชคเซ, เชธเชฟเชธเซเชเชฎเชจเซ เชธเชฎเชเชพเชตเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเซ เชเซ เชนเซเช เชฎเชพเชจเชต เชเซเช, เชฎเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช เชเซ เชเชพเชฏเช เชฎเชพเชฐเชพ เชฎเชพเชเซ เชธเซเชฅเซ เชฏเซเชเซเชฏ เชเซ, เชคเซ เชนเชเซเชเชค เชนเซเชตเชพ เชเชคเชพเช เชเซ เชเชฃเชพ เชฌเชงเชพ เชชเซเชทเซเช เซ เชฒเซเชก เชฅเชฏเชพ เชนเซเชตเชพ เชเชคเชพเช. เชเซเชเช เชธเชฎเชฏเชฎเชพเช, เช เชจเซ เชคเชชเชพเชธ เชชเชฃ เชถเชฐเซ เชฅเชพเชฏ เชเซ. เชนเซเช เชฌเซเชเชจเซ 4 เชฅเซ 6 เชเชฒเชพเชเชจเชพ เช เชเชคเชฐเชพเชฒเชฎเชพเช เชธเชพเชเช เชชเชฐ เชตเชฟเชจเชเชคเซเช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชฅเชฏเซ, เช เชจเซ เชฌเชงเซเช เชฌเชฐเชพเชฌเชฐ เชเชพเชฎ เชเชฐเซเชฏเซเช. เชธเชฎเชฏเซ เชธเชฎเชฏเซ, เชเชพเชฏเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ เชฎเซเชถเซเชเซเชฒเซเช เชเชญเซ เชฅเชพเชฏ เชเซ, เชชเชฐเชเชคเซ เชเซ เชคเซเช เชคเชฎเชจเซ เชเซเชเชฅเซ เชนเซเชฐเชพเชจ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ, เชคเซ เชคเชฎเชพเชฐเซ เชเชพเช เชคเซ เชคเซเชฎเชจเซ เชธเชพเชฅเซ เชฎเซเชจเซเชฏเซเช เชฒเซ เชกเซเชฒ เชเชฐเชตเชพเชจเซ เช เชจเซ เชชเชเซ เชฌเซเชเชจเซ เชฒเซเชจเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เช เชฅเชตเชพ เชฅเซเชกเชพ เชเชฒเชพเชเซ เชฐเชพเชน เชเซเช เช เชจเซ เชเซเชเซเชธ เชฌเชเชง เชฅเชตเชพ เชเซเชเช. เชเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซ, เชคเชฎเซ เชธเชฐเชณเชคเชพเชฅเซ เชฌเซเชเชพ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชฎเชพเชเซ เชเซเชกเชจเซ เช เชจเซเชเซเชฒเชฟเชค เชเชฐเซ เชถเชเซ เชเซ, เช เชจเซ เชเซ เชคเชฎเซ เชเชฎ เชเชฐเซ เชเซ, เชคเซ เชคเชฎเซ เชเชฟเชชเซเชชเชฃเซเชเชฎเชพเช เชคเซเชจเซ เชเชพเชฃ เชเชฐเซ เชถเชเซ เชเซ.
เชเซ เชคเชฎเซ เชนเชฎเชฃเชพเช เช เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฟเชเช เชธเชพเชฅเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเซ เชฐเชนเซเชฏเชพเช เชเซ เช เชจเซ เชคเชฎเชจเซ เชเชฌเชฐ เชจเชฅเซ เชเซ เชเซเชเชฒเซเช เชตเซเชฌเชธเชพเชเชเซเชธ เชคเซเชจเซ เชธเชพเชฅเซ เชถเชพ เชฎเชพเชเซ เชธเชเชเชฐเซเชท เชเชฐเซ เชเซ, เชคเซ เชชเชเซ เชคเชฎเซ เช เชเซเชทเซเชคเซเชฐเชฎเชพเช เชคเชฎเชพเชฐเซ เชชเชนเซเชฒเซ เชชเซเชฐเซเชเซเชเซเช เชถเชฐเซ เชเชฐเซ เชคเซ เชชเชนเซเชฒเชพเช, เชคเชฎเชพเชฐเซ เชคเชฐเชซเซเชฃ เชเชฐเซ เช เชจเซ "เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฟเชเช เชถเชฟเชทเซเชเชพเชเชพเชฐ" เชถเชฌเซเชฆเซ เชชเชฐ Google เชถเซเชง เชเชฐเซ. . เชเซ เชคเชฎเซ เช เชตเชฟเชเชพเชฐเซ เชฐเซเชคเซ เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฟเชเช เชเชฐเซ เชเซ, เชคเซ เชคเชฎเชพเชฐเชพ เชชเซเชฐเชฏเซเชเซ เชคเชฎเชพเชฐเชพ เชตเชฟเชเชพเชฐเซ เชเชฐเชคเชพเช เชตเชนเซเชฒเชพ เชธเชฎเชพเชชเซเชค เชฅเช เชถเชเซ เชเซ.
เชชเซเชฐเชพเชฐเชเชญ
เช เชฎเชพเชฐเชพ เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฐ เชเซเชกเชฎเชพเช เชถเซเช เชฅเชถเซ เชคเซเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชเชพเชเชเซ เช เชนเซเช เชเซ:
- เชเชฐเซเชฐเซ เชชเซเชธเซเชคเชเชพเชฒเชฏเซ เชเชฏเชพเชค เชเชฐเซ.
- เชเซเชเชฒ เชเซเชฐเซเชฎ เชเซเชฌ เชเซเชฒเซ เชฐเชนเซเชฏเชพ เชเซเช.
- เชเช เชซเชเชเซเชถเชจเชจเซ เชเซเชฒ เชเชฐเซ เชเซ เชฌเซเช เชถเชฐเซ เชเชฐเซ เชเซ, เชคเซเชจเซ เชถเชนเซเชฐเซ เช เชจเซ เชคเชพเชฐเซเชเซ เชชเชธเชพเชฐ เชเชฐเซ เชเซ เชเซเชจเซ เชเชชเชฏเซเช เชเชฟเชเชฟเชเชจเซ เชถเซเชง เชเชฐเชคเซ เชตเชเชคเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
- เช เชเชพเชฐเซเชฏ เชชเซเชฐเชฅเชฎ เชถเซเชง เชชเชฐเชฟเชฃเชพเชฎเซ เชฒเซ เชเซ, เชถเซเชฐเซเชทเซเช เชฆเซเชตเชพเชฐเชพ เชธเซเชฐเซเช เชเชฐเซ เชเซ, เช เชจเซ เชตเชงเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชฌเชเชจเชจเซ เชเซเชฒเชฟเช เชเชฐเซ เชเซ.
- เช เชจเซเชฏ เชเชพเชฐเซเชฏ เชธเชฎเชเซเชฐ เชชเซเชทเซเช เชฎเชพเชเชฅเซ เชกเซเชเชพ เชเชเชคเซเชฐเชฟเชค เชเชฐเซ เชเซ เช เชจเซ เชกเซเชเชพ เชซเซเชฐเซเชฎ เชชเชฐเชค เชเชฐเซ เชเซ.
- เช เชเชพเชเชจเชพ เชฌเซ เชชเชเชฒเชพเช เชเชฟเชเชฟเชเชจเซ เชเชฟเชเชฎเชค (เชธเชธเซเชคเซ) เช เชจเซ เชซเซเชฒเชพเชเชเชจเซ เชเชกเชช (เชธเซเชฅเซ เชเชกเชชเซ) เชฆเซเชตเชพเชฐเชพ เชตเชฐเซเชเซเชเชฐเชฃ เชชเซเชฐเชเชพเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- เชธเซเชเซเชฐเชฟเชชเซเชเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชเชฟเชเชฟเชเชจเซ เชเชฟเชเชฎเชคเซ (เชธเชธเซเชคเซ เชเชฟเชเชฟเชเซ เช เชจเซ เชธเชฐเซเชฐเชพเชถ เชเชฟเชเชฎเชค)เชจเซ เชธเชพเชฐเชพเชเชถ เชงเชฐเชพเชตเชคเซ เชเชฎเซเชฒ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชเชชเชฐเซเชเซเชค เชคเซเชฐเชฃ เชธเซเชเชเชพเชเชเซ เชฆเซเชตเชพเชฐเชพ เชธเซเชฐเซเช เชเชฐเซเชฒเซ เชฎเชพเชนเชฟเชคเซ เชธเชพเชฅเซเชจเซ เชกเซเชเชพ เชซเซเชฐเซเชฎ เชเชเซเชธเซเชฒ เชซเชพเชเชฒ เชคเชฐเซเชเซ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- เชเชชเชฐเซเชเซเชค เชคเชฎเชพเชฎ เชเซเชฐเชฟเชฏเชพเช เชเซเชเซเชเชธ เชธเชฎเชฏเชเชพเชณเชพ เชชเชเซ เชเชเซเชฐเชฎเชพเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เช เชจเซเชเชงเชตเซเช เชเซเชเช เชเซ เชฆเชฐเซเช เชธเซเชฒเซเชจเชฟเชฏเชฎ เชชเซเชฐเซเชเซเชเซเช เชตเซเชฌ เชกเซเชฐเชพเชเชตเชฐเชฅเซ เชถเชฐเซ เชฅเชพเชฏ เชเซ. เชนเซ เชตเชพเชชเชฐเซ เชเซ
เชงเซเชฏเชพเชจเชฎเชพเช เชฐเชพเชเซ เชเซ เชฎเชพเชฐเซ เชตเชพเชฐเซเชคเชพเชฎเชพเช เชนเซเช เชเชฐ เชเชฟเชเชฟเชเซ เชชเชฐ เชถเซเชฐเซเชทเซเช เชธเซเชฆเชพ เชถเซเชงเชตเชพ เชฎเชพเชเซ เชจเชตเซ เชเซเชทเชฟเชคเชฟเชเซ เชเซเชฒเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเซ เชจเชฅเซ. เชเชตเซ เชเชซเชฐเซเชธ เชถเซเชงเชตเชพเชจเซ เชเชฃเซ เชตเชงเซ เช เชฆเซเชฏเชคเชจ เชชเชฆเซเชงเชคเชฟเช เชเซ. เชนเซเช เชซเชเซเชค เช เชธเชพเชฎเชเซเชฐเซเชจเชพ เชตเชพเชเชเซเชจเซ เช เชธเชฎเชธเซเชฏเชพเชจเซ เชเชเซเชฒเชตเชพ เชฎเชพเชเซ เชเช เชธเชฐเชณ เชชเชฐเชเชคเซ เชตเซเชฏเชตเชนเชพเชฐเซ เชฐเซเชค เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช.
เช เชคเซ เชเซเชก เชเซ เชเซเชจเชพ เชตเชฟเชถเซ เชเชชเชฃเซ เชเชชเชฐ เชตเชพเชค เชเชฐเซ เชเซ.
from time import sleep, strftime
from random import randint
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import smtplib
from email.mime.multipart import MIMEMultipart
# ะัะฟะพะปัะทัะนัะต ััั ะฒะฐั ะฟััั ะบ chromedriver!
chromedriver_path = 'C:/{YOUR PATH HERE}/chromedriver_win32/chromedriver.exe'
driver = webdriver.Chrome(executable_path=chromedriver_path) # ะญัะพะน ะบะพะผะฐะฝะดะพะน ะพัะบััะฒะฐะตััั ะพะบะฝะพ Chrome
sleep(2)
เชเซเชกเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชคเชฎเซ เชชเซเชเซเช เชเชฏเชพเชค เชเชฆเซเชถเซ เชเซเช เชถเชเซ เชเซ เชเซเชจเซ เชเชชเชฏเซเช เช
เชฎเชพเชฐเชพ เชธเชฎเชเซเชฐ เชชเซเชฐเซเชเซเชเซเชเชฎเชพเช เชฅเชพเชฏ เชเซ. เชคเซเชฅเซ, randint
เชจเชตเซเช เชธเชฐเซเช เชเชชเชฐเซเชถเชจ เชถเชฐเซ เชเชฐเชคเชพ เชชเชนเซเชฒเชพ เชฐเซเชจเซเชกเชฎ เชธเซเชเชจเซเชก เชฎเชพเชเซ เชฌเซเชเชจเซ "เชธเซเช เชเชตเซเช" เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชตเชชเชฐเชพเชฏ เชเซ. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชเช เชชเชฃ เชฌเซเช เช เชตเชฟเชจเชพ เชเชฐเซ เชถเชเชคเซเช เชจเชฅเซ. เชเซ เชคเชฎเซ เชเชชเชฐเซเชเซเชค เชเซเชก เชเชฒเชพเชตเซ เชเซ, เชคเซ เชเช Chrome เชตเชฟเชจเซเชกเซ เชเซเชฒเชถเซ, เชเซเชจเซ เชเชชเชฏเซเช เชฌเซเช เชธเชพเชเชเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเชถเซ.
เชเชพเชฒเซ เชฅเซเชกเซ เชชเซเชฐเชฏเซเช เชเชฐเซเช เช เชจเซ kayak.com เชตเซเชฌเชธเชพเชเชเชจเซ เชเช เช เชฒเช เชตเชฟเชจเซเชกเซเชฎเชพเช เชเซเชฒเซเช. เช เชฎเซ เชเซ เชถเชนเซเชฐเชฅเซ เชเชกเชพเชจ เชญเชฐเชตเชพ เชเช เชฐเชนเซเชฏเชพ เชเซเช เชคเซ เชถเชนเซเชฐ เช เชจเซ เช เชฎเซ เชเซ เชถเชนเซเชฐเชฎเชพเช เชเชตเชพ เชฎเชพเชเซเช เชเซเช เชคเซ เชคเซเชฎเช เชซเซเชฒเชพเชเชเชจเซ เชคเชพเชฐเซเชเซ เชชเชธเชเชฆ เชเชฐเซเชถเซเช. เชคเชพเชฐเซเชเซ เชชเชธเชเชฆ เชเชฐเชคเซ เชตเชเชคเซ, เชเชพเชคเชฐเซ เชเชฐเซ เชเซ +-3 เชฆเชฟเชตเชธเชจเซ เชถเซเชฐเซเชฃเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ. เชเชตเซ เชตเชฟเชจเชเชคเซเชเชจเชพ เชเชตเชพเชฌเชฎเชพเช เชธเชพเชเช เชถเซเช เชฌเชจเชพเชตเซ เชเซ เชคเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชคเชพ เชฎเซเช เชเซเชก เชฒเชเซเชฏเซ เชเซ. เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเชฎเชพเชฐเซ เชซเชเซเชค เชจเชฟเชฐเซเชฆเชฟเชทเซเช เชคเชพเชฐเซเชเซ เชฎเชพเชเซ เช เชเชฟเชเชฟเช เชถเซเชงเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชคเซ เชคเชฎเชพเชฐเซ เชฌเซเช เชเซเชกเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเชตเซ เชชเชกเชถเซ เชคเซเชตเซ เชเชเซเช เชธเชเชญเชพเชตเชจเชพ เชเซ. เชเซเชฏเชพเชฐเซ เชนเซเช เชเซเชก เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเช เชเซเช, เชคเซเชฏเชพเชฐเซ เชนเซเช เชฏเซเชเซเชฏ เชธเชฎเชเซเชคเซ เชเชชเซเช เชเซเช, เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ เชฎเซเชเชเชตเชฃ เช เชจเซเชญเชตเซ เชเซ, เชคเซ เชฎเชจเซ เชเชฃเชพเชตเซ.
เชนเชตเซ เชธเชฐเซเช เชฌเชเชจ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ เช
เชจเซ เชเชกเซเชฐเซเชธ เชฌเชพเชฐเชฎเชพเชเชจเซ เชฒเชฟเชเช เชเซเช. เชคเซ เชจเซเชเซ เชเชชเซเชฒเชพ เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชนเซเช เชเชชเชฏเซเช เชเชฐเซเช เชเซเช เชคเซ เชฒเชฟเชเช เชเซเชตเซเช เช เชนเซเชตเซเช เชเซเชเช เชเซเชฏเชพเช เชตเซเชฐเซเชเชฌเชฒ เชเชพเชนเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ kayak
, เชเซ URL เชจเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซ เชเซ, เช
เชจเซ เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ get
เชตเซเชฌ เชกเซเชฐเชพเชเชตเชฐ. เชถเซเชง เชฌเชเชจเชจเซ เชเซเชฒเชฟเช เชเชฐเซเชฏเชพ เชชเชเซ, เชชเชฐเชฟเชฃเชพเชฎเซ เชชเซเชทเซเช เชชเชฐ เชฆเซเชเชพเชตเชพ เชเซเชเช.
เชเซเชฏเชพเชฐเซ เชฎเซเช เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ get
เชฅเซเชกเซเชตเชพเชฐเชฎเชพเช เชฌเซ เชเซ เชคเซเชฐเชฃ เชเชฐเชคเชพ เชตเชงเซ เชตเชเชค, เชฎเชจเซ reCaptcha เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชเชพเชธเชฃเซ เชชเซเชฐเซเชฃ เชเชฐเชตเชพเชจเซเช เชเชนเซเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช. เชคเชฎเซ เช เชเซเช เชฎเซเชจเซเชฏเซเช
เชฒเซ เชชเชพเชธ เชเชฐเซ เชถเชเซ เชเซ เช
เชจเซ เชเซเชฏเชพเช เชธเซเชงเซ เชธเชฟเชธเซเชเชฎ เชจเชตเซ เชเซเช เชเชฒเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชจ เชเชฐเซ เชคเซเชฏเชพเช เชธเซเชงเซ เชชเซเชฐเชฏเซเช เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซ เชถเชเซ เชเซ. เชเซเชฏเชพเชฐเซ เชฎเซเช เชธเซเชเซเชฐเชฟเชชเซเชเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเซเชฏเซเช, เชคเซเชฏเชพเชฐเซ เชเชตเซเช เชฒเชพเชเชคเซเช เชนเชคเซเช เชเซ เชชเซเชฐเชฅเชฎ เชถเซเชง เชธเชคเซเชฐ เชนเชเชฎเซเชถเชพ เชธเชฐเชณ เชฐเซเชคเซ เชเชพเชฒเชคเซเช เชนเชคเซเช, เชคเซเชฅเซ เชเซ เชคเชฎเซ เชเซเชก เชธเชพเชฅเซ เชชเซเชฐเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเชเชคเชพ เชนเซ, เชคเซ เชคเชฎเชพเชฐเซ เชธเชฎเชฏเชพเชเชคเชฐเซ เชฎเซเชจเซเชฏเซเช
เชฒเซ เชคเชชเชพเชธ เชเชฐเชตเซ เชชเชกเชถเซ เช
เชจเซ เชถเซเชง เชธเชคเซเชฐเซ เชตเชเซเชเซ เชฒเชพเชเชฌเชพ เช
เชเชคเชฐเชพเชฒเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชกเชจเซ เชเชพเชฒเชตเชพ เชฆเซเชตเซ เชชเชกเชถเซ. เช
เชจเซ, เชเซ เชคเชฎเซ เชคเซเชจเชพ เชตเชฟเชถเซ เชตเชฟเชเชพเชฐเซ เชเซ, เชคเซ เชตเซเชฏเชเซเชคเชฟเชจเซ เชถเซเชง เชเชพเชฎเชเซเชฐเซ เชตเชเซเชเซ 10-เชฎเชฟเชจเชฟเชเชจเชพ เช
เชเชคเชฐเชพเชฒ เชชเชฐ เชชเซเชฐเชพเชชเซเชค เชเชฟเชเชฟเชเชจเชพ เชญเชพเชตเซ เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซเชตเซ เชถเชเซเชฏเชคเชพ เชจเชฅเซ.
XPath เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชทเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเซเช
เชคเซเชฅเซ, เช
เชฎเซ เชเช เชตเชฟเชจเซเชกเซ เชเซเชฒเซ เช
เชจเซ เชธเชพเชเช เชฒเซเชก เชเชฐเซ. เชเชฟเชเชฎเชค เช
เชจเซ เช
เชจเซเชฏ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ, เช
เชฎเชพเชฐเซ XPath เชคเชเชจเซเช เช
เชฅเชตเชพ CSS เชชเชธเชเชฆเชเซเชเชพเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชฎเซเช XPath เชธเชพเชฅเซ เชตเชณเชเซ เชฐเชนเซเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช เช
เชจเซ CSS เชชเชธเชเชฆเชเซเชเชพเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจ เช
เชจเซเชญเชตเซ, เชชเชฐเชเชคเซ เชคเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเชตเซเช เชคเชฆเซเชฆเชจ เชถเชเซเชฏ เชเซ. XPath เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชทเซเช เชจเซ เชเชธเชชเชพเชธ เชจเซเชตเชฟเชเซเช เชเชฐเชตเซเช เชฎเซเชถเซเชเซเชฒ เชนเซเช เชถเชเซ เชเซ, เช
เชจเซ เชเซ เชคเชฎเซ เชฎเซเช เชตเชฐเซเชฃเชตเซเชฒ เชคเชเชจเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชคเซ เชชเชฃ
เชคเซ, เชเชพเชฒเซ เชฌเซเช เชชเชฐ เชเชพเชฎ เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซเช. เชเชพเชฒเซ เชธเชธเซเชคเซ เชเชฟเชเชฟเชเซ เชชเชธเชเชฆ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เชเซเชทเชฎเชคเชพเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเช. เชจเซเชเซเชจเซ เชเชฌเซเชฎเชพเช, XPath เชชเชธเชเชฆเชเซเชเชพเชฐ เชเซเชก เชฒเชพเชฒ เชฐเชเชเชฎเชพเช เชชเซเชฐเชเชพเชถเชฟเชค เชฅเชฏเซเชฒ เชเซ. เชเซเชก เชเซเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชฐเซเชเชฟ เชงเชฐเชพเชตเชคเชพ เชชเซเชทเซเช เชคเชคเซเชต เชชเชฐ เชเชฎเชฃเซเช-เชเซเชฒเชฟเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เช
เชจเซ เชฆเซเชเชพเชคเชพ เชฎเซเชจเซเชฎเชพเชเชฅเซ เชคเชชเชพเชธ เชเชฆเซเชถ เชชเชธเชเชฆ เชเชฐเซ. เช เชเชฆเซเชถเชจเซ เชตเชฟเชตเชฟเชง เชชเซเชทเซเช เชเชเชเซ เชฎเชพเชเซ เชเซเชฒ เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชเซเชจเซ เชเซเชก เชเซเชก เชตเซเชฏเซเช
เชฐเชฎเชพเช เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช
เชจเซ เชชเซเชฐเชเชพเชถเชฟเชค เชฅเชถเซ.
เชชเซเชทเซเช เชเซเชก เชเซเช
เชเซเชกเชฎเชพเชเชฅเซ เชชเชธเชเชฆเชเซเชเชพเชฐเซเชจเซ เชจเชเชฒ เชเชฐเชตเชพเชจเชพ เชเซเชฐเชซเชพเชฏเชฆเชพ เชตเชฟเชถเซเชจเชพ เชฎเชพเชฐเชพ เชคเชฐเซเชเชจเซ เชชเซเชทเซเชเชฟ เชถเซเชงเชตเชพ เชฎเชพเชเซ, เชจเซเชเซเชจเซ เชธเซเชตเชฟเชงเชพเช เชชเชฐ เชงเซเชฏเชพเชจ เชเชชเซ.
เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชเซเชกเชจเซ เชจเชเชฒ เชเชฐเซ เชเซ เชคเซเชฏเชพเชฐเซ เชคเชฎเชจเซ เช เชฎเชณเซ เชเซ:
//*[@id="wtKI-price_aTab"]/div[1]/div/div/div[1]/div/span/span
เชเชจเชพ เชเซเชตเซเช เชเชเชเช เชเซเชชเชฟ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเซเชกเชจเชพ เชตเชฟเชญเชพเช เชชเชฐ เชเชฎเชฃเซเช-เชเซเชฒเชฟเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซเชฎเชพเช เชคเชฎเชจเซ เชฐเซเชเชฟ เชเซ เช เชจเซ เชฆเซเชเชพเชคเชพ เชฎเซเชจเซเชฎเชพเชเชฅเซ เชเซเชชเชฟ > เชเซเชชเชฟ XPath เชเชฆเซเชถ เชชเชธเชเชฆ เชเชฐเซ.
เชธเซเชฅเซ เชธเชธเซเชคเซเช เชฌเชเชจ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฎเซเช เชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชคเซ เช เชนเซเช เชเซ:
cheap_results = โ//a[@data-code = "price"]โ
เชเซเชชเชฟ เชเชฎเชพเชจเซเชก > เชเซเชชเชฟ XPath
เชคเซ เชคเชฆเซเชฆเชจ เชธเซเชชเชทเซเช เชเซ เชเซ เชฌเซเชเซ เชตเชฟเชเชฒเซเชช เชตเชงเซ เชธเชฐเชณ เชฒเชพเชเซ เชเซ. เชเซเชฏเชพเชฐเซ เชคเซเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ, เชคเซเชฏเชพเชฐเซ เชคเซ เชเชตเชพ เชคเชคเซเชตเชจเซ เชถเซเชง เชเชฐเซ เชเซ เชเซ เชเซเชฎเชพเช เชตเชฟเชถเซเชทเชคเชพ เชนเซเชฏ data-code
เชจเซ เชธเชฎเชพเชจ price
. เชชเซเชฐเชฅเชฎ เชตเชฟเชเชฒเซเชชเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชคเชคเซเชต เชถเซเชงเชตเชพเชฎเชพเช เชเชตเซ เชเซ id
เชเซ เชฌเชฐเชพเชฌเชฐ เชเซ wtKI-price_aTab
, เช
เชจเซ เชคเชคเซเชตเชจเซ XPath เชชเชพเชฅ เชเซเชตเซ เชฆเซเชเชพเชฏ เชเซ /div[1]/div/div/div[1]/div/span/span
. เชชเซเชทเซเช เชชเชฐ เชเชจเชพ เชเซเชตเซ XPath เชเซเชตเซเชฐเซ เชฏเซเชเซเชคเชฟ เชเชฐเชถเซ, เชชเชฐเชเชคเซ เชฎเชพเชคเซเชฐ เชเช เช เชตเชพเชฐ. เชนเซเช เชนเชฎเชฃเชพเช เช เชเชนเซ เชถเชเซเช เชเซเช id
เชเชเชฒเซ เชตเชเชคเซ เชเซเชฏเชพเชฐเซ เชชเซเชทเซเช เชฒเซเชก เชฅเชถเซ เชคเซเชฏเชพเชฐเซ เชฌเชฆเชฒเชพเชถเซ. เชชเชพเชคเซเชฐ เชเซเชฐเชฎ wtKI
เชฆเชฐ เชตเชเชคเซ เชเซเชฏเชพเชฐเซ เชชเซเชทเซเช เชฒเซเชก เชฅเชพเชฏ เชเซ เชคเซเชฏเชพเชฐเซ เชเชคเชฟเชถเซเชฒ เชฐเซเชคเซ เชฌเชฆเชฒเชพเชฏ เชเซ, เชคเซเชฅเซ เชเซ เชเซเชก เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชคเซ เชเชเชฒเชพ เชชเซเชทเซเช เชจเซ เชซเชฐเซเชฅเซ เชฒเซเชก เชเชฐเซเชฏเชพ เชชเชเซ เชจเชเชพเชฎเซเช เชนเชถเซ. เชคเซเชฅเซ XPath เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชฅเซเชกเซ เชธเชฎเชฏ เชฒเซ. เช เชเซเชเชพเชจ เชคเชฎเชจเซ เชธเชพเชฐเซ เชฐเซเชคเซ เชธเซเชตเชพ เชเชชเชถเซ.
เชเซ เชเซ, เช เชจเซเชเชงเชตเซเช เชเซเชเช เชเซ เชเชเชฆเชฎ เชธเชฐเชณ เชธเชพเชเชเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ XPath เชชเชธเชเชฆเชเซเชเชพเชฐเซเชจเซ เชจเชเชฒ เชเชฐเชตเซ เชเชชเชฏเซเชเซ เชฅเช เชถเชเซ เชเซ, เช เชจเซ เชเซ เชคเชฎเชจเซ เชเชฎเชพเช เช เชจเซเชเซเชณ เชนเซเชฏ, เชคเซ เชคเซเชฎเชพเช เชเชเช เชเซเชเซเช เชจเชฅเซ.
เชนเชตเซ เชเชพเชฒเซ เชตเชฟเชเชพเชฐเซเช เชเซ เชเซ เชคเชฎเชพเชฐเซ เชธเซเชเชฟเชจเซ เช
เชเชฆเชฐ เชคเชฎเชพเชฎ เชถเซเชง เชชเชฐเชฟเชฃเชพเชฎเซเชจเซ เชเชฃเซ เชฒเซเชเซเชเชฎเชพเช เชฎเซเชณเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซ เชถเซเช เชเชฐเชตเซเช. เชเซเชฌ เช เชธเชฐเชณ. เชฆเชฐเซเช เชชเชฐเชฟเชฃเชพเชฎ เชเช เชตเชฐเซเช เชธเชพเชฅเซ เชเช เชชเชฆเชพเชฐเซเชฅ เช
เชเชฆเชฐ เชเซ resultWrapper
. เชฌเชงเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชฒเซเชก เชเชฐเชตเชพเชจเซเช เชจเซเชเซ เชฌเชคเชพเชตเซเชฒ เชเช เชธเชฎเชพเชจ เชฒเซเชชเชฎเชพเช เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เช เชจเซเชเชงเชตเซเช เชเซเชเช เชเซ เชเซ เชคเชฎเซ เชเชชเชฐเซเชเซเชค เชธเชฎเชเซ เชเซ, เชคเซ เชคเชฎเชพเชฐเซ เชฎเซเชเชพเชญเชพเชเชจเชพ เชเซเชกเชจเซ เชธเชฐเชณเชคเชพเชฅเซ เชธเชฎเชเซ เชฒเซเชตเซเช เชเซเชเช เชเซเชจเซเช เช
เชฎเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเชถเซเช. เชเซเชฎ เชเซเชฎ เช เชเซเชก เชเชพเชฒเซ เชเซ, เชคเซเชฎ เชคเซเชฎ เชเชชเชฃเซ เช
เชฎเซเช เชชเซเชฐเชเชพเชฐเชจเซ เชชเชพเชฅ-เชธเซเชชเซเชธเชฟเชซเชพเชฏเซเชเช เชฎเชฟเชเซเชจเชฟเชเชฎ (XPath) เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชชเชฃเชจเซ เชเซ เชเซเชเช เชเซ เชคเซ (เชนเชเซเชเชคเชฎเชพเช, เชเชฒเชฟเชฎเซเชจเซเช เชเซเชฎเชพเช เชชเชฐเชฟเชฃเชพเชฎ เชฒเชชเซเชเชพเชฏเซเชฒเซเช เชเซ) เชเชเซเชธเซเชธ เชเชฐเซเช เชเซเช. เช เชเชฒเชฟเชฎเซเชจเซเชเชจเซเช เชเซเชเซเชธเซเช เชฎเซเชณเชตเชตเชพ เช
เชจเซ เชคเซเชจเซ เชเชตเชพ เชเชฌเซเชเซเชเซเชเชฎเชพเช เชฎเซเชเชตเชพ เชฎเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซเชฎเชพเชเชฅเซ เชกเซเชเชพ เชตเชพเชเชเซ เชถเชเชพเชฏ เชเซ (เชชเซเชฐเชฅเชฎ เชเชชเชฏเซเช flight_containers
, เชชเชเซ - flights_list
).
เชชเซเชฐเชฅเชฎ เชคเซเชฐเชฃ เชฒเซเชเซเช เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชพเชฏ เชเซ เช
เชจเซ เชเชชเชฃเซ เชเซ เชเซเชเช เชคเซ เชฌเชงเซเช เชธเซเชชเชทเซเชเชชเชฃเซ เชเซเช เชถเชเซเช เชเซเช. เชเซ เชเซ, เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเชตเชพเชจเซ เชตเชงเซ เชฐเชธเชชเซเชฐเชฆ เชฐเซเชคเซ เชเซ. เชเชชเชฃเซ เชฆเชฐเซเช เชคเชคเซเชตเชฎเชพเชเชฅเซ เช
เชฒเช-เช
เชฒเช เชกเซเชเชพ เชฒเซเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชเชพเชฎเซ เชฒเชพเชเซ!
เชซเชเชเซเชถเชจ เชฒเชเชตเชพเชจเซ เชธเซเชฅเซ เชธเชนเซเชฒเซ เชฐเชธเซเชคเซ เช เชเซ เชเซ เชตเชงเชพเชฐเชพเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชฒเซเชก เชเชฐเซ, เชคเซเชฅเซ เชเชชเชฃเซ เชคเซเชฏเชพเชเชฅเซ เช เชถเชฐเซเชเชค เชเชฐเซเชถเซเช. เชนเซเช เชซเซเชฒเชพเชเชเซเชธเชจเซ เชธเชเชเซเชฏเชพเชจเซ เชฎเชนเชคเซเชคเชฎ เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช เชเซ เชเซเชจเชพ เชตเชฟเชถเซ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเซ เชเซ, เชธเซเชตเชพเชฎเชพเช เชถเชเชเชพ เชเชญเซ เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชเซ เชเซ เชจเชฟเชฐเซเชเซเชทเชฃ เชคเชฐเชซ เชฆเซเชฐเซ เชเชพเชฏ เชเซ, เชคเซเชฅเซ เชฆเชฐเซเช เชตเชเชคเซ เชเซเชฏเชพเชฐเซ เชชเซเชทเซเช เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ เชนเซเช เชตเชงเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชฒเซเชก เชเชฐเซ เชฌเชเชจเชจเซ เชเซเชฒเชฟเช เชเชฐเซเช เชเซเช. เช เชเซเชกเชฎเชพเช, เชคเชฎเชพเชฐเซ เชฌเซเชฒเซเช เชชเชฐ เชงเซเชฏเชพเชจ เชเชชเชตเซเช เชเซเชเช try
, เชเซ เชฎเซเช เชเชฎเซเชฐเซเชฏเซเช เชเซ เชเชพเชฐเชฃ เชเซ เชเซเชเชฒเซเชเชตเชพเชฐ เชฌเชเชจ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชฒเซเชก เชฅเชคเซเช เชจเชฅเซ. เชเซ เชคเชฎเซ เชชเชฃ เชเชจเซ เชธเชพเชฎเชจเซ เชเชฐเซ เชเซ, เชคเซ เชซเชเชเซเชถเชจ เชเซเชกเชฎเชพเช เช เชซเชเชเซเชถเชจ เชฎเชพเชเซเชจเชพ เชเซเชฒเซเชธ เชเซเชฎเซเชจเซเช เชเชฐเซ start_kayak
, เชเซ เชเชชเชฃเซ เชจเซเชเซ เชเซเชเชถเซเช.
# ะะฐะณััะทะบะฐ ะฑะพะปััะตะณะพ ะบะพะปะธัะตััะฒะฐ ัะตะทัะปััะฐัะพะฒ ะดะปั ัะพะณะพ, ััะพะฑั ะผะฐะบัะธะผะธะทะธัะพะฒะฐัั ะพะฑััะผ ัะพะฑะธัะฐะตะผัั
ะดะฐะฝะฝัั
def load_more():
try:
more_results = '//a[@class = "moreButton"]'
driver.find_element_by_xpath(more_results).click()
# ะัะฒะพะด ััะธั
ะทะฐะผะตัะพะบ ะฒ ั
ะพะดะต ัะฐะฑะพัั ะฟัะพะณัะฐะผะผั ะฟะพะผะพะณะฐะตั ะผะฝะต ะฑััััะพ ะฒัััะฝะธัั ัะพ, ัะตะผ ะพะฝะฐ ะทะฐะฝััะฐ
print('sleeping.....')
sleep(randint(45,60))
except:
pass
เชนเชตเซ, เช เชซเชเชเซเชถเชจเชจเชพ เชฒเชพเชเชฌเชพ เชชเซเชฅเซเชฅเชเชฐเชฃ เชชเชเซ (เชเซเชฏเชพเชฐเซเช เชนเซเช เชฆเซเชฐ เชฅเช เชถเชเซเช เชเซเช), เช เชฎเซ เชเช เชซเชเชเซเชถเชจ เชเชพเชนเซเชฐ เชเชฐเชตเชพ เชคเซเชฏเชพเชฐ เชเซเช เชเซ เชชเซเชทเซเช เชจเซ เชเชเชฐเชกเชพ เชเชฐเชถเซ.
เชจเซเชเซเชจเชพ เชซเชเชเซเชถเชจเชฎเชพเช เชเซ เชเชฐเซเชฐเซ เชเซ เชคเซ เชฎเซเช เชชเชนเซเชฒเซเชฅเซ เช เชเชเชคเซเชฐ เชเชฐเซ เชฒเซเชงเซเช เชเซ page_scrape
. เชเซเชเชฒเซเชเชตเชพเชฐ เชชเชฐเชค เชเชฐเซเชฒ เชชเชพเชฅ เชกเซเชเชพเชจเซ เชเซเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฅเซ เชนเซเช เชคเซเชจเซ เช
เชฒเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชธเชฐเชณ เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชฏเชพเชฐเซ เชนเซเช เชชเซเชฐเชฅเชฎ เชตเชเชค เชเชฒเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช section_a_list
ะธ section_b_list
. เช
เชฎเชพเชฐเซเช เชเชพเชฐเซเชฏ เชกเซเชเชพ เชซเซเชฐเซเชฎ เชชเชฐเชค เชเชฐเซ เชเซ flights_df
, เช เช
เชฎเชจเซ เชตเชฟเชตเชฟเชง เชกเซเชเชพ เชธเซเชฐเซเชเชฟเชเช เชชเชฆเซเชงเชคเชฟเชเชฎเชพเชเชฅเซ เชฎเซเชณเชตเซเชฒเชพ เชชเชฐเชฟเชฃเชพเชฎเซเชจเซ เช
เชฒเช เชเชฐเชตเชพเชจเซ เช
เชจเซ เชชเชเซเชฅเซ เชคเซเชฎเชจเซ เชเซเชกเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ.
def page_scrape():
"""This function takes care of the scraping part"""
xp_sections = '//*[@class="section duration"]'
sections = driver.find_elements_by_xpath(xp_sections)
sections_list = [value.text for value in sections]
section_a_list = sections_list[::2] # ัะฐะบ ะผั ัะฐะทะดะตะปัะตะผ ะธะฝัะพัะผะฐัะธั ะพ ะดะฒัั
ะฟะพะปััะฐั
section_b_list = sections_list[1::2]
# ะัะปะธ ะฒั ะฝะฐัะบะฝัะปะธัั ะฝะฐ reCaptcha, ะฒะฐะผ ะผะพะถะตั ะฟะพะฝะฐะดะพะฑะธัััั ััะพ-ัะพ ะฟัะตะดะฟัะธะฝััั.
# ะ ัะพะผ, ััะพ ััะพ-ัะพ ะฟะพัะปะพ ะฝะต ัะฐะบ, ะฒั ัะทะฝะฐะตัะต ะธัั
ะพะดั ะธะท ัะพะณะพ, ััะพ ะฒััะตะฟัะธะฒะตะดัะฝะฝัะต ัะฟะธัะบะธ ะฟัััั
# ััะพ ะฒััะฐะถะตะฝะธะต if ะฟะพะทะฒะพะปัะตั ะทะฐะฒะตััะธัั ัะฐะฑะพัั ะฟัะพะณัะฐะผะผั ะธะปะธ ัะดะตะปะฐัั ะตัั ััะพ-ะฝะธะฑัะดั
# ััั ะผะพะถะฝะพ ะฟัะธะพััะฐะฝะพะฒะธัั ัะฐะฑะพัั, ััะพ ะฟะพะทะฒะพะปะธั ะฒะฐะผ ะฟัะพะนัะธ ะฟัะพะฒะตัะบั ะธ ะฟัะพะดะพะปะถะธัั ัะบัะฐะฟะธะฝะณ
# ั ะธัะฟะพะปัะทัั ััั SystemExit ัะฐะบ ะบะฐะบ ั
ะพัั ะฟัะพัะตััะธัะพะฒะฐัั ะฒัั ั ัะฐะผะพะณะพ ะฝะฐัะฐะปะฐ
if section_a_list == []:
raise SystemExit
# ะฏ ะฑัะดั ะธัะฟะพะปัะทะพะฒะฐัั ะฑัะบะฒั A ะดะปั ัั
ะพะดััะธั
ัะตะนัะพะฒ ะธ B ะดะปั ะฟัะธะฑัะฒะฐััะธั
a_duration = []
a_section_names = []
for n in section_a_list:
# ะะพะปััะฐะตะผ ะฒัะตะผั
a_section_names.append(''.join(n.split()[2:5]))
a_duration.append(''.join(n.split()[0:2]))
b_duration = []
b_section_names = []
for n in section_b_list:
# ะะพะปััะฐะตะผ ะฒัะตะผั
b_section_names.append(''.join(n.split()[2:5]))
b_duration.append(''.join(n.split()[0:2]))
xp_dates = '//div[@class="section date"]'
dates = driver.find_elements_by_xpath(xp_dates)
dates_list = [value.text for value in dates]
a_date_list = dates_list[::2]
b_date_list = dates_list[1::2]
# ะะพะปััะฐะตะผ ะดะตะฝั ะฝะตะดะตะปะธ
a_day = [value.split()[0] for value in a_date_list]
a_weekday = [value.split()[1] for value in a_date_list]
b_day = [value.split()[0] for value in b_date_list]
b_weekday = [value.split()[1] for value in b_date_list]
# ะะพะปััะฐะตะผ ัะตะฝั
xp_prices = '//a[@class="booking-link"]/span[@class="price option-text"]'
prices = driver.find_elements_by_xpath(xp_prices)
prices_list = [price.text.replace('$','') for price in prices if price.text != '']
prices_list = list(map(int, prices_list))
# stops - ััะพ ะฑะพะปััะพะน ัะฟะธัะพะบ, ะฒ ะบะพัะพัะพะผ ะฟะตัะฒัะน ััะฐะณะผะตะฝั ะฟััะธ ะฝะฐั
ะพะดะธััั ะฟะพ ัััะฝะพะผั ะธะฝะดะตะบัั, ะฐ ะฒัะพัะพะน - ะฟะพ ะฝะตัััะฝะพะผั
xp_stops = '//div[@class="section stops"]/div[1]'
stops = driver.find_elements_by_xpath(xp_stops)
stops_list = [stop.text[0].replace('n','0') for stop in stops]
a_stop_list = stops_list[::2]
b_stop_list = stops_list[1::2]
xp_stops_cities = '//div[@class="section stops"]/div[2]'
stops_cities = driver.find_elements_by_xpath(xp_stops_cities)
stops_cities_list = [stop.text for stop in stops_cities]
a_stop_name_list = stops_cities_list[::2]
b_stop_name_list = stops_cities_list[1::2]
# ัะฒะตะดะตะฝะธั ะพ ะบะพะผะฟะฐะฝะธะธ-ะฟะตัะตะฒะพะทัะธะบะต, ะฒัะตะผั ะพัะฟัะฐะฒะปะตะฝะธั ะธ ะฟัะธะฑััะธั ะดะปั ะพะฑะพะธั
ัะตะนัะพะฒ
xp_schedule = '//div[@class="section times"]'
schedules = driver.find_elements_by_xpath(xp_schedule)
hours_list = []
carrier_list = []
for schedule in schedules:
hours_list.append(schedule.text.split('n')[0])
carrier_list.append(schedule.text.split('n')[1])
# ัะฐะทะดะตะปัะตะผ ัะฒะตะดะตะฝะธั ะพ ะฒัะตะผะตะฝะธ ะธ ะพ ะฟะตัะตะฒะพะทัะธะบะฐั
ะผะตะถะดั ัะตะนัะฐะผะธ a ะธ b
a_hours = hours_list[::2]
a_carrier = carrier_list[1::2]
b_hours = hours_list[::2]
b_carrier = carrier_list[1::2]
cols = (['Out Day', 'Out Time', 'Out Weekday', 'Out Airline', 'Out Cities', 'Out Duration', 'Out Stops', 'Out Stop Cities',
'Return Day', 'Return Time', 'Return Weekday', 'Return Airline', 'Return Cities', 'Return Duration', 'Return Stops', 'Return Stop Cities',
'Price'])
flights_df = pd.DataFrame({'Out Day': a_day,
'Out Weekday': a_weekday,
'Out Duration': a_duration,
'Out Cities': a_section_names,
'Return Day': b_day,
'Return Weekday': b_weekday,
'Return Duration': b_duration,
'Return Cities': b_section_names,
'Out Stops': a_stop_list,
'Out Stop Cities': a_stop_name_list,
'Return Stops': b_stop_list,
'Return Stop Cities': b_stop_name_list,
'Out Time': a_hours,
'Out Airline': a_carrier,
'Return Time': b_hours,
'Return Airline': b_carrier,
'Price': prices_list})[cols]
flights_df['timestamp'] = strftime("%Y%m%d-%H%M") # ะฒัะตะผั ัะฑะพัะฐ ะดะฐะฝะฝัั
return flights_df
เชฎเซเช เชเชฒเซเชจเซ เชจเชพเชฎ เชเชชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเซ เชเซเชฅเซ เชเซเชก เชธเชฎเชเซ เชถเชเชพเชฏ. เชฏเชพเชฆ เชฐเชพเชเซ เชเซ เชเชฒเซ เชธเชพเชฅเซ เชถเชฐเซ เชฅเชพเชฏ เชเซ a
เชชเชพเชฅเชจเชพ เชชเซเชฐเชฅเชฎ เชคเชฌเชเซเชเชพ เชธเชพเชฅเซ เชธเชเชฌเชเชงเชฟเชค เชเซ, เช
เชจเซ b
- เชฌเซเชเชพ เชฎเชพเชเซ. เชเชพเชฒเซ เชเชเชณเชจเชพ เชเชพเชฐเซเชฏ เชชเชฐ เชเชเช.
เชธเชชเซเชฐเซเช เชฎเชฟเชเซเชจเชฟเชเชฎเซเชธ
เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชนเชตเซ เชเช เชเชพเชฐเซเชฏ เชเซ เชเซ เช
เชฎเชจเซ เชตเชงเชพเชฐเชพเชจเชพ เชถเซเชง เชชเชฐเชฟเชฃเชพเชฎเซ เช
เชจเซ เชคเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชเชพเชฐเซเชฏ เชฒเซเชก เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เช เชฒเซเช เช
เชนเซเช เชธเชฎเชพเชชเซเชค เชฅเช เชถเชเซเชฏเซ เชนเซเชค, เชเชพเชฐเชฃ เชเซ เช เชฌเซ เชเชพเชฐเซเชฏเซ เชคเชฎเชจเซ เชคเชฎเชพเชฐเซ เชเชพเชคเซ เชเซเชฒเซ เชถเชเซ เชคเซเชตเชพ เชชเซเชทเซเช เซเชจเซ เชธเซเชเซเชฐเซเชช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชฌเชงเซเช เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ. เชชเชฐเชเชคเซ เช
เชฎเซ เชนเชเซ เชธเซเชงเซ เชเชชเชฐ เชเชฐเซเชเชพ เชเชฐเซเชฒ เชเซเชเชฒเซเช เชธเชนเชพเชฏเช เชชเชฆเซเชงเชคเชฟเชเชจเซ เชตเชฟเชเชพเชฐ เชเชฐเซเชฏเซ เชจเชฅเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช เชเชฎเซเชฒ เช
เชจเซ เช
เชจเซเชฏ เชเซเชเชฒเซเช เชตเชธเซเชคเซเช เชฎเซเชเชฒเชตเชพเชจเซ เชเซเชก เชเซ. เช เชฌเชงเซเช เชซเชเชเซเชถเชจเชฎเชพเช เชฎเชณเซ เชถเชเซ เชเซ start_kayak
, เชเซเชจเซ เชเชชเชฃเซ เชนเชตเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช.
เช เชเชพเชฐเซเชฏ เชเชพเชฐเซเชฏ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชถเชนเซเชฐเซ เช
เชจเซ เชคเชพเชฐเซเชเซ เชตเชฟเชถเซเชจเซ เชฎเชพเชนเชฟเชคเซเชจเซ เชเชฐเซเชฐ เชเซ. เช เชฎเชพเชนเชฟเชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชคเซ เชเชฒเชฎเชพเช เชเช เชฒเชฟเชเช เชฌเชจเชพเชตเซ เชเซ kayak
, เชเซเชจเซ เชเชชเชฏเซเช เชคเชฎเชจเซ เชเชตเชพ เชชเซเชทเซเช เชชเชฐ เชฒเช เชเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ เชเซเชฎเชพเช เชเซเชตเซเชฐเซ เชธเชพเชฅเซ เชคเซเชฎเชจเชพ เชถเซเชฐเซเชทเซเช เชฎเซเชณ เชฆเซเชตเชพเชฐเชพ เชธเซเชฐเซเช เชเชฐเซเชฒเชพ เชถเซเชง เชชเชฐเชฟเชฃเชพเชฎเซ เชนเชถเซ. เชชเซเชฐเชฅเชฎ เชธเซเชเซเชฐเซเชชเชฟเชเช เชธเชคเซเชฐ เชชเชเซ, เช
เชฎเซ เชชเซเชทเซเช เชจเซ เชเซเช เชชเชฐ เชเซเชทเซเชเชเชฎเชพเช เชเชฟเชเชฎเชคเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซเชถเซเช. เชเชเชฒเซ เชเซ, เช
เชฎเซ เชจเซเชฏเซเชจเชคเชฎ เชเชฟเชเชฟเช เชเชฟเชเชฎเชค เช
เชจเซ เชธเชฐเซเชฐเชพเชถ เชเชฟเชเชฎเชค เชถเซเชงเซเชถเซเช. เช เชฌเชงเซเช, เชธเชพเชเช เชฆเซเชตเชพเชฐเชพ เชเชพเชฐเซ เชเชฐเชพเชฏเซเชฒเซ เชเชเชพเชนเซ เชธเชพเชฅเซ, เชเชฎเซเชเชฒ เชฆเซเชตเชพเชฐเชพ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเชถเซ. เชชเซเชทเซเช เชชเชฐ, เช
เชจเซเชฐเซเชช เชเซเชทเซเชเช เชเชชเชฒเชพ เชกเชพเชฌเชพ เชเซเชฃเชพเชฎเชพเช เชนเซเชตเซเช เชเซเชเช. เช เชเซเชทเซเชเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเซเช, เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, เชเซเชเซเชเชธ เชคเชพเชฐเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชถเซเชง เชเชฐเชคเซ เชตเชเชคเซ เชญเซเชฒเชจเซเช เชเชพเชฐเชฃ เชฌเชจเซ เชถเชเซ เชเซ, เชเชพเชฐเชฃ เชเซ เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชเซเชทเซเชเช เชชเซเชทเซเช เชชเชฐ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชคเซเช เชจเชฅเซ.
def start_kayak(city_from, city_to, date_start, date_end):
"""City codes - it's the IATA codes!
Date format - YYYY-MM-DD"""
kayak = ('https://www.kayak.com/flights/' + city_from + '-' + city_to +
'/' + date_start + '-flexible/' + date_end + '-flexible?sort=bestflight_a')
driver.get(kayak)
sleep(randint(8,10))
# ะธะฝะพะณะดะฐ ะฟะพัะฒะปัะตััั ะฒัะฟะปัะฒะฐััะตะต ะพะบะฝะพ, ะดะปั ะฟัะพะฒะตัะบะธ ะฝะฐ ััะพ ะธ ะตะณะพ ะทะฐะบัััะธั ะผะพะถะฝะพ ะฒะพัะฟะพะปัะทะพะฒะฐัััั ะฑะปะพะบะพะผ try
try:
xp_popup_close = '//button[contains(@id,"dialog-close") and contains(@class,"Button-No-Standard-Style close ")]'
driver.find_elements_by_xpath(xp_popup_close)[5].click()
except Exception as e:
pass
sleep(randint(60,95))
print('loading more.....')
# load_more()
print('starting first scrape.....')
df_flights_best = page_scrape()
df_flights_best['sort'] = 'best'
sleep(randint(60,80))
# ะะพะทัะผัะผ ัะฐะผัั ะฝะธะทะบัั ัะตะฝั ะธะท ัะฐะฑะปะธัั, ัะฐัะฟะพะปะพะถะตะฝะฝะพะน ะฒ ะฒะตัั
ะฝะตะน ัะฐััะธ ัััะฐะฝะธัั
matrix = driver.find_elements_by_xpath('//*[contains(@id,"FlexMatrixCell")]')
matrix_prices = [price.text.replace('$','') for price in matrix]
matrix_prices = list(map(int, matrix_prices))
matrix_min = min(matrix_prices)
matrix_avg = sum(matrix_prices)/len(matrix_prices)
print('switching to cheapest results.....')
cheap_results = '//a[@data-code = "price"]'
driver.find_element_by_xpath(cheap_results).click()
sleep(randint(60,90))
print('loading more.....')
# load_more()
print('starting second scrape.....')
df_flights_cheap = page_scrape()
df_flights_cheap['sort'] = 'cheap'
sleep(randint(60,80))
print('switching to quickest results.....')
quick_results = '//a[@data-code = "duration"]'
driver.find_element_by_xpath(quick_results).click()
sleep(randint(60,90))
print('loading more.....')
# load_more()
print('starting third scrape.....')
df_flights_fast = page_scrape()
df_flights_fast['sort'] = 'fast'
sleep(randint(60,80))
# ะกะพั
ัะฐะฝะตะฝะธะต ะฝะพะฒะพะณะพ ััะตะนะผะฐ ะฒ Excel-ัะฐะนะป, ะธะผั ะบะพัะพัะพะณะพ ะพััะฐะถะฐะตั ะณะพัะพะดะฐ ะธ ะดะฐัั
final_df = df_flights_cheap.append(df_flights_best).append(df_flights_fast)
final_df.to_excel('search_backups//{}_flights_{}-{}_from_{}_to_{}.xlsx'.format(strftime("%Y%m%d-%H%M"),
city_from, city_to,
date_start, date_end), index=False)
print('saved df.....')
# ะะพะถะฝะพ ัะปะตะดะธัั ะทะฐ ัะตะผ, ะบะฐะบ ะฟัะพะณะฝะพะท, ะฒัะดะฐะฒะฐะตะผัะน ัะฐะนัะพะผ, ัะพะพัะฝะพัะธััั ั ัะตะฐะปัะฝะพัััั
xp_loading = '//div[contains(@id,"advice")]'
loading = driver.find_element_by_xpath(xp_loading).text
xp_prediction = '//span[@class="info-text"]'
prediction = driver.find_element_by_xpath(xp_prediction).text
print(loading+'n'+prediction)
# ะธะฝะพะณะดะฐ ะฒ ะฟะตัะตะผะตะฝะฝะพะน loading ะพะบะฐะทัะฒะฐะตััั ััะฐ ัััะพะบะฐ, ะบะพัะพัะฐั, ะฟะพะทะถะต, ะฒัะทัะฒะฐะตั ะฟัะพะฑะปะตะผั ั ะพัะฟัะฐะฒะบะพะน ะฟะธััะผะฐ
# ะตัะปะธ ััะพ ะฟัะพะทะพัะปะพ - ะผะตะฝัะตะผ ะตั ะฝะฐ "Not Sure"
weird = 'ยฏ_(ใ)_/ยฏ'
if loading == weird:
loading = 'Not sure'
username = '[email protected]'
password = 'YOUR PASSWORD'
server = smtplib.SMTP('smtp.outlook.com', 587)
server.ehlo()
server.starttls()
server.login(username, password)
msg = ('Subject: Flight Scrapernn
Cheapest Flight: {}nAverage Price: {}nnRecommendation: {}nnEnd of message'.format(matrix_min, matrix_avg, (loading+'n'+prediction)))
message = MIMEMultipart()
message['From'] = '[email protected]'
message['to'] = '[email protected]'
server.sendmail('[email protected]', '[email protected]', msg)
print('sent email.....')
เชฎเซเช Outlook เชเชเชพเชเชจเซเช (hotmail.com) เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชธเซเชเซเชฐเชฟเชชเซเชเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเซเชฏเซเช เชเซ. เชฎเซเช Gmail เชเชเชพเชเชจเซเช เชธเชพเชฅเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเซเชฏเซเช เชจเชฅเซ, เช เชเชฎเซเชเชฒ เชธเชฟเชธเซเชเชฎ เชเซเชฌ เช เชฒเซเชเชชเซเชฐเชฟเชฏ เชเซ, เชชเชฐเชเชคเซ เชเชฃเชพ เชธเชเชญเชตเชฟเชค เชตเชฟเชเชฒเซเชชเซ เชเซ. เชเซ เชคเชฎเซ เชนเซเชเชฎเซเชฒ เชเชเชพเชเชจเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชคเซ เชชเชเซ เชฌเชงเซเช เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเซเชกเชฎเชพเช เชคเชฎเชพเชฐเซ เชกเซเชเชพ เชฆเชพเชเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชเซ เชคเชฎเซ เช เชเชพเชฐเซเชฏ เชฎเชพเชเซ เชเซเชกเชจเชพ เชเซเชเซเชเชธ เชตเชฟเชญเชพเชเซเชฎเชพเช เชฌเชฐเชพเชฌเชฐ เชถเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซ เชธเชฎเชเชตเชพ เชฎเชพเชเชเชคเชพ เชนเซ, เชคเซ เชคเชฎเซ เชคเซเชฎเชจเซ เชจเชเชฒ เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ เชคเซเชฎเชจเซ เชธเชพเชฅเซ เชชเซเชฐเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ. เชเซเชก เชธเชพเชฅเซ เชชเซเชฐเชฏเซเช เช เชคเซเชจเซ เชธเชพเชเซ เชฐเซเชคเซ เชธเชฎเชเชตเชพเชจเซ เชเชเชฎเชพเชคเซเชฐ เชฐเชธเซเชคเซ เชเซ.
เชคเซเชฏเชพเชฐ เชธเชฟเชธเซเชเชฎ
เชนเชตเซ เชเซเชฏเชพเชฐเซ เช เชฎเซ เชตเชพเชค เชเชฐเซ เชเซ เชคเซ เชฌเชงเซเช เชเชฐเซ เชฒเซเชงเซเช เชเซ, เช เชฎเซ เชเช เชธเชฐเชณ เชฒเซเชช เชฌเชจเชพเชตเซ เชถเชเซเช เชเซเช เชเซ เช เชฎเชพเชฐเชพ เชเชพเชฐเซเชฏเซเชจเซ เชเซเชฒ เชเชฐเซ เชเซ. เชธเซเชเซเชฐเชฟเชชเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชชเชพเชธเซเชฅเซ เชถเชนเซเชฐเซ เช เชจเซ เชคเชพเชฐเซเชเซ เชตเชฟเชถเซเชจเชพ เชกเซเชเชพเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซ เชเซ. เชธเซเชเซเชฐเชฟเชชเซเชเชจเชพ เชธเชคเชค เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชธเชพเชฅเซ เชชเชฐเซเชเซเชทเชฃ เชเชฐเชคเซ เชตเชเชคเซ, เชคเชฎเซ เชฆเชฐ เชตเชเชคเซ เช เชกเซเชเชพเชจเซ เชฎเซเชจเซเชฏเซเช เชฒเซ เชฆเชพเชเชฒ เชเชฐเชตเชพ เชเชเซเชเชคเชพ เชนเซเชต เชคเซเชตเซ เชถเชเซเชฏเชคเชพ เชจเชฅเซ, เชคเซเชฅเซ เชชเชฐเซเชเซเชทเชฃเชจเชพ เชธเชฎเชฏเชเชพเชณเชพ เชฎเชพเชเซ, เช เชจเซเชฐเซเชช เชฐเซเชเชพเช, เชคเซเชฎเชจเซ เชจเซเชเซเชจเซ เชเชฟเชชเซเชชเชฃเซเชเชจเซ เช เชจเชเชฎเซเชจเซเช เชเชฐเซเชจเซ เชเชฟเชชเซเชชเชฃเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ, เชเซเชฎเชพเช เชกเซเชเชพเชจเซ เชเชฐเซเชฐเซ เชเซ. เชธเซเชเซเชฐเชฟเชชเซเช เชนเชพเชฐเซเชกเชเซเชกเซเชก เชเซ.
city_from = input('From which city? ')
city_to = input('Where to? ')
date_start = input('Search around which departure date? Please use YYYY-MM-DD format only ')
date_end = input('Return when? Please use YYYY-MM-DD format only ')
# city_from = 'LIS'
# city_to = 'SIN'
# date_start = '2019-08-21'
# date_end = '2019-09-07'
for n in range(0,5):
start_kayak(city_from, city_to, date_start, date_end)
print('iteration {} was complete @ {}'.format(n, strftime("%Y%m%d-%H%M")))
# ะะดัะผ 4 ัะฐัะฐ
sleep(60*60*4)
print('sleep finished.....')
เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเซเชธเซเช เชฐเชจ เช เชเซเชตเซ เชฆเซเชเชพเชฏ เชเซ.
เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเซเชธเซเช เชฐเชจ
เชชเชฐเชฟเชฃเชพเชฎเซ
เชเซ เชคเชฎเซ เชคเซเชจเซ เชเชเชฒเซเช เชฆเซเชฐ เชเชฐเซเชฏเซเช เชเซ, เชคเซ เช เชญเชฟเชจเชเชฆเชจ! เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชนเชตเซ เชเชพเชฐเซเชฏเชฐเชค เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฐ เชเซ, เชเซ เชเซ เชนเซเช เชคเซเชจเซ เชธเซเชงเชพเชฐเชตเชพเชจเซ เชเชฃเซ เชฐเซเชคเซ เชเซเช เชถเชเซเช เชเซเช. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเซเชจเซ Twilio เชธเชพเชฅเซ เชธเชเชเชฒเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ เชเซเชฅเซ เชเชฐเซเชจเซ เชคเซ เชเชฎเซเชฒเชจเซ เชฌเชฆเชฒเซ เชเซเชเซเชธเซเช เชธเชเชฆเซเชถเชพเช เชฎเซเชเชฒเซ. เชคเชฎเซ เชเชเชธเชพเชฅเซ เช เชจเซเช เชธเชฐเซเชตเชฐเซเชธเชฎเชพเชเชฅเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพ เชฎเชพเชเซ VPN เช เชฅเชตเชพ เช เชจเซเชฏ เชเซเช เชตเชธเซเชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ. เชธเชพเชเช เชฏเซเชเชฐเชจเซ เชคเชชเชพเชธเชตเชพเชฎเชพเช เชธเชฎเชฏเชพเชเชคเชฐเซ เชธเชฎเชธเซเชฏเชพ เชเชญเซ เชฅเชพเชฏ เชเซ เชเซ เชคเซ เชตเซเชฏเชเซเชคเชฟ เชเซ เชเซ เชเซเชฎ, เชชเชฐเชเชคเซ เช เชธเชฎเชธเซเชฏเชพ เชชเชฃ เชเชเซเชฒเซ เชถเชเชพเชฏ เชเซ. เชเซเช เชชเชฃ เชธเชเชเซเชเซเชฎเชพเช, เชนเชตเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชเช เชเชงเชพเชฐ เชเซ เชเซเชจเซ เชคเชฎเซ เชเชเซเชเซ เชคเซ เชตเชฟเชธเซเชคเซเชค เชเชฐเซ เชถเชเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชพเชคเชฐเซ เชเชฐเซ เชเซ เชเชเซเชธเซเชฒ เชซเชพเชเชฒ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชเชฎเซเชเชฒเชจเชพ เชเซเชกเชพเชฃ เชคเชฐเซเชเซ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชซเชเซเชค เชจเซเชเชงเชพเชฏเซเชฒเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เช เชธเชฐเซเชตเซเชฎเชพเช เชญเชพเช เชฒเช เชถเชเซ เชเซ.
เชถเซเช เชคเชฎเซ เชตเซเชฌ เชธเซเชเซเชฐเซเชชเชฟเชเช เชคเชเชจเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ?
-
เชนเชพ
-
เชเซเช
8 เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเช เชฎเชค โโเชเชชเซเชฏเซ. 1 เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฆเซเชฐ เชฐเชนเซเชฏเซ.
เชธเซเชฐเซเชธ: www.habr.com