ืคึผื™ื˜ื”ืึธืŸ - ืึท ืึทืกื™ืกื˜ืึทื ื˜ ืื™ืŸ ื“ืขืจื’ื™ื™ื•ื ื’ ื‘ื™ืœื™ืง ืœื•ืคื˜ ื˜ื™ืงื™ืฅ ืคึฟืึทืจ ื™ืขื ืข ื•ื•ืืก ืœื™ื‘ืข ืฆื• ืึทืจื•ืžืคืึธืจืŸ

ื“ืขืจ ืžื—ื‘ืจ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ื“ื™ ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ื•ื•ืึธืก ืžื™ืจ ืึทืจื•ื™ืกื’ืขื‘ืŸ ื”ื™ื™ึทื ื˜, ื–ืื’ื˜ ืึทื– ื–ื™ื™ืŸ ืฆื™ืœ ืื™ื– ืฆื• ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ืึท ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผืขืจ ืื™ืŸ ืคึผื™ื˜ื”ืึธืŸ ื ื™ืฆืŸ ืกืขืœืขื ื™ื•ื, ื•ื•ืึธืก ื–ื•ื›ื˜ ืคึฟืึทืจ ืขืจืœื™ื™ืŸ ื‘ื™ืœืขื˜ ืคึผืจื™ื™ืกื™ื–. ื•ื•ืขืŸ ืื™ืจ ื–ื•ื›ื˜ ืคึฟืึทืจ ื˜ื™ืงื™ืฅ, ืคืœืขืงืกืึทื‘ืึทืœ ื“ืึทื˜ืขืก ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ (+- 3 ื˜ืขื’ ืงืึธืจืขื•ื• ืฆื• ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ื“ืึทื˜ืขืก). ื“ืขืจ ืกืงืจื™ื™ืคึผืขืจ ืกืึทื•ื•ืขืก ื“ื™ ื–ื•ื›ืŸ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืื™ืŸ ืึทืŸ ืขืงืกืกืขืœ ื˜ืขืงืข ืื•ืŸ ืกืขื ื“ื– ืึท ื‘ืœื™ืฆืคึผืึธืกื˜ ืฆื• ื“ืขื ืžืขื ื˜ืฉ ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขืคึฟื•ื ืขืŸ. ื“ืขืจ ืฆื™ืœ ืคื•ืŸ ื“ืขื ืคึผืจื•ื™ืขืงื˜ ืื™ื– ืฆื• ื”ืขืœืคืŸ ื˜ืจืึทื•ื•ืœืขืจื– ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ื‘ืขืกื˜ืขืจ ื“ื™ืœื–.

ืคึผื™ื˜ื”ืึธืŸ - ืึท ืึทืกื™ืกื˜ืึทื ื˜ ืื™ืŸ ื“ืขืจื’ื™ื™ื•ื ื’ ื‘ื™ืœื™ืง ืœื•ืคื˜ ื˜ื™ืงื™ืฅ ืคึฟืึทืจ ื™ืขื ืข ื•ื•ืืก ืœื™ื‘ืข ืฆื• ืึทืจื•ืžืคืึธืจืŸ

ืื•ื™ื‘, ื‘ืฉืขืช ืื™ืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ืขื ืžืึทื˜ืขืจื™ืึทืœ, ืื™ืจ ืคื™ืœืŸ ืคืึทืจืคืึทืœืŸ, ืงื•ืง ืื™ืŸ this ืึทืจื˜ื™ืงืœ.

ื•ื•ืึธืก ื–ืขื ืขืŸ ืžื™ืจ ื’ืขื’ืื ื’ืขืŸ ืฆื• ืงื•ืงืŸ ืคึฟืึทืจ?

ืื™ืจ ื–ืขื ื˜ ืคืจื™ื™ ืฆื• ื ื•ืฆืŸ ื“ื™ ืกื™ืกื˜ืขื ื“ื™ืกืงืจื™ื™ื‘ื“ ื“ืึธ ื•ื•ื™ ืื™ืจ ื•ื•ื™ืœื˜. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืš ื’ืขื•ื•ื™ื™ื ื˜ ืขืก ืฆื• ื–ื•ื›ืŸ ืคึฟืึทืจ ืึธืคึผืจื•ื˜ืขื’ ื˜ืึธื•ืจืก ืื•ืŸ ื˜ื™ืงื™ืฅ ืฆื• ืžื™ื™ืŸ ื›ืึธื•ืžื˜ืึทื•ืŸ. ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ืขืจื ืกื˜ ื•ื•ืขื’ืŸ ื“ืขืจื’ื™ื™ื•ื ื’ ืจืขื•ื•ืขื›ื“ื™ืง ื˜ื™ืงื™ืฅ, ืื™ืจ ืงืขื ืขืŸ ืœื•ื™ืคืŸ ื“ื™ ืฉืจื™ืคื˜ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ (ืคึผืฉื•ื˜ ืกืขืจื•ื•ืขืจ, ืคึฟืึทืจ 130 ืจื•ื‘ืœ ืึท ื—ื•ื“ืฉ, ืื™ื– ื’ืึทื ืฅ ืคึผืึทืกื™ืง ืคึฟืึทืจ ื“ืขื) ืื•ืŸ ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืขืก ืœื•ื™ืคื˜ ืึทืžืึธืœ ืึธื“ืขืจ ืฆื•ื•ื™ื™ ืžืึธืœ ืึท ื˜ืึธื’. ื–ื•ื›ืŸ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืฆื• ืื™ืจ ื“ื•ืจืš ื‘ืœื™ืฆืคึผืึธืกื˜. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึทืœืฅ ืึทื–ื•ื™ ืึทื– ื“ืขืจ ืฉืจื™ืคื˜ ืกืึทื•ื•ืขืก ืึทืŸ ืขืงืกืกืขืœ ื˜ืขืงืข ืžื™ื˜ ื–ื•ื›ืŸ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืื™ืŸ ืึท ื“ืจืึธืคึผื‘ืึธืงืก ื˜ืขืงืข, ื•ื•ืึธืก ื•ื•ืขื˜ ืœืึธื–ืŸ ืื™ืจ ืฆื• ื–ืขืŸ ืึทื–ืึท ื˜ืขืงืขืก ืคึฟื•ืŸ ืขืจื’ืขืฅ ืื•ืŸ ืื™ืŸ ืงื™ื™ืŸ ืฆื™ื™ื˜.

ืคึผื™ื˜ื”ืึธืŸ - ืึท ืึทืกื™ืกื˜ืึทื ื˜ ืื™ืŸ ื“ืขืจื’ื™ื™ื•ื ื’ ื‘ื™ืœื™ืง ืœื•ืคื˜ ื˜ื™ืงื™ืฅ ืคึฟืึทืจ ื™ืขื ืข ื•ื•ืืก ืœื™ื‘ืข ืฆื• ืึทืจื•ืžืคืึธืจืŸ
ืื™ืš ื”ืื‘ ื ื™ืฉื˜ ื’ืขืคื•ื ืขืŸ ื˜ืขืจืึทืคืก ืžื™ื˜ ืขืจืจืึธืจืก ื ืึธืš, ืึธื‘ืขืจ ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืขืก ืื™ื– ืžืขื’ืœืขืš

ื•ื•ืขืŸ ืื™ืจ ื–ื•ื›ื˜, ื•ื•ื™ ืฉื•ื™ืŸ ื“ืขืจืžืื ื˜, ืึท "ืคืœืขืงืกืึทื‘ืึทืœ ื“ืึทื˜ืข" ืื™ื– ื’ืขื ื™ืฆื˜; ื“ืขืจ ืฉืจื™ืคื˜ ื’ืขืคื™ื ื˜ ืึธืคืคืขืจืก ื•ื•ืึธืก ื–ืขื ืขืŸ ื™ืŸ ื“ืจื™ื™ ื˜ืขื’ ืคื•ืŸ ื“ื™ ื’ืขื’ืขื‘ืŸ ื“ืึทื˜ืขืก. ื›ืึธื˜ืฉ ื•ื•ืขืŸ ืคืœื™ืกื ื“ื™ืง ื“ื™ ืฉืจื™ืคื˜, ืขืก ื–ื•ื›ื˜ ืคึฟืึทืจ ืึธืคืคืขืจืก ืื™ืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืจื™ื›ื˜ื•ื ื’, ืขืก ืื™ื– ื’ืจื™ื ื’ ืฆื• ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ืขืก ืึทื–ื•ื™ ืึทื– ืขืก ืงืขื ืขืŸ ืงืœื™ื™ึทื‘ืŸ ื“ืึทื˜ืŸ ืื•ื™ืฃ ืขื˜ืœืขื›ืข ืคืœื™ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก. ืžื™ื˜ ื“ืขืจ ื”ื™ืœืฃ ืื™ืจ ืงืขื ืขืŸ ืืคื™ืœื• ืงื•ืงืŸ ืคึฟืึทืจ ื˜ืขื•ืช ื˜ืขืจืึทืคืก; ืึทื–ืึท ื’ืขืคื™ื ื˜ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื–ื™ื™ืขืจ ื˜ืฉื™ืงืึทื•ื•ืข.

ืคืืจื•ื•ืืก ื˜ืึธืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืืŸ ืื ื“ืขืจ ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผืขืจ?

ื•ื•ืขืŸ ืื™ืš ืขืจืฉื˜ืขืจ ืกื˜ืึทืจื˜ืขื“ ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผื™ื ื’, ืื™ืš ื”ืึธื ืขืกื˜ืœื™ ืื™ื– ื ื™ืฉื˜ ื“ืขืจ ื”ื•ื™ืคึผื˜ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ืขืก. ืื™ืš ื’ืขื•ื•ืืœื˜ ืฆื• ื˜ืึธืŸ ืžืขืจ ืคึผืจืึทื“ื–ืฉืขืงืก ืื™ืŸ ื“ื™ ืคืขืœื“ ืคื•ืŸ ืคึผืจื™ื“ื™ืงื˜ื™ื•ื• ืžืึธื“ืขืœื™ื ื’, ืคื™ื ืึทื ืฆื™ืขืœ ืึทื ืึทืœื™ืกื™ืก, ืื•ืŸ, ืขืคืฉืขืจ, ืื™ืŸ ื“ื™ ืคืขืœื“ ืคื•ืŸ ืึทื ืึทืœื™ื™ื–ื™ื ื’ ื“ื™ ืขืžืึธืฆื™ืึธื ืขืœ ืงืึทืœืขืจื™ื ื’ ืคื•ืŸ ื˜ืขืงืกื˜ืŸ. ืึธื‘ืขืจ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื–ื™ื™ืขืจ ื˜ืฉื™ืงืึทื•ื•ืข ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืื•ื™ืก ื•ื•ื™ ืฆื• ืฉืึทืคึฟืŸ ืึท ืคึผืจืึธื’ืจืึทื ื•ื•ืึธืก ืงืึทืœืขืงืฅ ื“ืึทื˜ืŸ ืคื•ืŸ ื•ื•ืขื‘ืกื™ื˜ืขืก. ื•ื•ืขืŸ ืื™ืš ื“ืขืœื•ื•ื•ื“ ืื™ืŸ ื“ืขื ื˜ืขืžืข, ืื™ืš ืื™ื™ื ื’ืขื–ืขืŸ ืึทื– ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผื™ื ื’ ืื™ื– ื“ืขืจ "ืžืึธื˜ืึธืจ" ืคื•ืŸ ื“ื™ ืื™ื ื˜ืขืจื ืขื˜.

ืื™ืจ ืงืขืŸ ื˜ืจืึทื›ื˜ืŸ ืึทื– ื“ืึธืก ืื™ื– ืื•ื™ืš ื“ืจื™ื™ืกื˜ ืึท ื“ืขืจืงืœืขืจื•ื ื’. ืึธื‘ืขืจ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืึทื– Google ืกื˜ืึทืจื˜ืขื“ ืžื™ื˜ ืึท ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผืขืจ ืึทื– ืœืขืจื™ Page ื‘ืืฉืืคืŸ ืžื™ื˜ Java ืื•ืŸ Python. Google ืจืึธื•ื‘ืึทืฅ ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ื™ืงืกืคึผืœืึธืจื™ื ื’ ื“ื™ ืื™ื ื˜ืขืจื ืขื˜, ื˜ืจื™ื™ื ื’ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ื“ื™ ื ื™ืฆืขืจืก ืžื™ื˜ ื“ื™ ื‘ืขืกื˜ืขืจ ืขื ื˜ืคึฟืขืจืก ืฆื• ื–ื™ื™ืขืจ ืคึฟืจืื’ืŸ. ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผื™ื ื’ ื”ืื˜ ืกืึธืฃ ื ื™ืฆื˜, ืื•ืŸ ืืคื™ืœื• ืื•ื™ื‘ ืื™ืจ ื–ืขื ื˜ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ืขืคึผืขืก ืึทื ื“ืขืจืฉ ืื™ืŸ ื“ืึทื˜ืึท ื•ื•ื™ืกื ืฉืึทืคึฟื˜, ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืขื˜ืœืขื›ืข ืกืงืจื™ื™ืคึผื™ื ื’ ืกืงื™ืœื– ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื“ืึทื˜ืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืึทื ืึทืœื™ื™ื–.

ืื™ืš ื’ืขืคึฟื•ื ืขืŸ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื˜ืขืงื ื™ืงืก ื’ืขื ื™ืฆื˜ ื“ืึธ ืื™ืŸ ืึท ื•ื•ื•ื ื“ืขืจืœืขืš ื“ืขืจ ื‘ื•ืš ื•ื•ืขื’ืŸ ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผื™ื ื’, ื•ื•ืึธืก ืื™ืš ืœืขืฆื˜ื ืก ืงื•ื ื”. ืขืก ื›ึผื•ืœืœ ืคื™ืœืข ืคึผืฉื•ื˜ ื‘ื™ื™ืฉืคื™ืœืŸ ืื•ืŸ ื™ื™ื“ื™ืึทื– ืคึฟืึทืจ ืคึผืจืึทืงื˜ื™ืฉ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื•ื•ืึธืก ืื™ืจ ื”ืึธื˜ ื’ืขืœืขืจื ื˜. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืขืก ืื™ื– ืึท ื–ื™ื™ืขืจ ื˜ืฉื™ืงืึทื•ื•ืข ืงืึทืคึผื™ื˜ืœ ื•ื•ืขื’ืŸ ื‘ื™ื™ืคึผืึทืกื™ื ื’ ืจืขืงืึทืคึผื˜ื˜ืฉืึท ื˜ืฉืขืงืก. ื“ืืก ืื™ื– ืžื™ืจ ื’ืขืงื•ืžืขืŸ ืืœืก ื ื™ื™ืขืก, ื•ื•ื™ื™ืœ ืื™ืš ื”ืื‘ ืืคื™ืœื• ื ื™ืฉื˜ ื’ืขื•ื•ืื•ืกื˜ ืื– ืขืก ื–ืขื ืขืŸ ืคืืจืืŸ ืกืคืขืฆื™ืขืœืข ืžื›ืฉื™ืจื™ื ืื•ืŸ ืืคื™ืœื• ื’ืื ืฆืข ืกืขืจื•ื•ื™ืกืขืก ืฆื• ืœื™ื™ื–ืŸ ืื–ืขืœื›ืข ืคืจืื‘ืœืขืžืขืŸ.

ืฆื™ ืื™ืจ ื•ื•ื™ ืฆื• ืึทืจื•ืžืคืึธืจืŸ?!

ืฆื• ื“ื™ ืคึผืฉื•ื˜ ืื•ืŸ ื’ืึทื ืฅ ื•ืžืฉืขื“ืœืขืš ืงืฉื™ื ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื“ืขื ื˜ื™ื˜ืœ ืคื•ืŸ ื“ืขื ืึธืคึผื˜ื™ื™ืœื•ื ื’, ืื™ืจ ืงืขื ืขืŸ ืึธืคื˜ ื”ืขืจืŸ ืึท positive ืขื ื˜ืคืขืจ, ื‘ืื’ืœื™ื™ื˜ ื“ื•ืจืš ืึท ืคึผืึธืจ ืคื•ืŸ ืžืขืฉื™ื•ืช ืคื•ืŸ ื“ื™ ื˜ืจืึทื•ื•ืึทืœื– ืคื•ืŸ ื“ืขื ืžืขื ื˜ืฉ ืฆื• ื•ื•ืขืžืขืŸ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขื‘ืขื˜ืŸ. ืจื•ื‘ึฟ ืคื•ืŸ ืื•ื ื“ื– ื•ื•ืึธืœื˜ ืฉื˜ื™ืžืขืŸ ืึทื– ื˜ืจืึทื•ื•ืึทืœื™ื ื’ ืื™ื– ืึท ื’ืจื•ื™ืก ื•ื•ืขื’ ืฆื• ื™ื™ึทื ื˜ื•ื ืงืขืŸ ื–ื™ืš ืื™ืŸ ื ื™ื™ึทืข ืงื•ืœื˜ื•ืจ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ืื•ืŸ ื‘ืจืึธื“ืึทืŸ ื“ื™ื™ืŸ ื›ืขืจื™ื™ื–ืึทื ื–. ืึธื‘ืขืจ, ืื•ื™ื‘ ืื™ืจ ืคืจืขื’ืŸ ืขืžืขืฆืขืจ ืฆื™ ื–ื™ื™ ื•ื•ื™ ื–ื•ื›ืŸ ืคึฟืึทืจ ืขืจืœื™ื™ืŸ ื˜ื™ืงื™ืฅ, ืื™ืš ื‘ื™ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ืขืจ ืขื ื˜ืคืขืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืึทื–ื•ื™ positive. ืื™ืŸ ืคืึทืงื˜, ืคึผื™ื˜ื”ืึธืŸ ืงื•ืžื˜ ืฆื• ืื•ื ื“ื–ืขืจ ื”ื™ืœืฃ ื“ืึธ.

ื“ืขืจ ืขืจืฉื˜ืขืจ ืึทืจื‘ืขื˜ ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืกืึธืœื•ื•ืข ืื•ื™ืฃ ื“ื™ ื•ื•ืขื’ ืฆื• ืฉืึทืคึฟืŸ ืึท ืกื™ืกื˜ืขื ืคึฟืึทืจ ื–ื•ื›ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืฃ ืœื•ืคื˜ ื˜ื™ืงื™ืฅ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืกืขืœืขืงื˜ื™ื ื’ ืึท ืคึผืึทืกื™ืง ืคึผืœืึทื˜ืคืึธืจืžืข ืคื•ืŸ โ€‹โ€‹ื•ื•ืึธืก ืžื™ืจ ื•ื•ืขืœืŸ ื ืขืžืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข. ืกืึทืœื•ื•ื™ื ื’ ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ื– ื ื™ืฉื˜ ื’ืจื™ื ื’ ืคึฟืึทืจ ืžื™ืจ, ืึธื‘ืขืจ ืื™ืŸ ื“ื™ ืกื•ืฃ ืื™ืš ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ื“ื™ ืงื™ื™ึทืึทืง ื“ื™ื ืกื˜. ืื™ืš ื’ืขืคืจื•ืื•ื•ื˜ ื“ื™ ืกืขืจื•ื•ื™ืกืขืก ืคื•ืŸ Momondo, Skyscanner, Expedia ืื•ืŸ ืขื˜ืœืขื›ืข ืื ื“ืขืจืข, ืึธื‘ืขืจ ื“ื™ ืžืขืงืึทื ื™ื–ืึทืžื– ืคื•ืŸ ืจืึธื‘ืึธื˜ ืฉื•ืฅ ืื•ื™ืฃ ื“ื™ ืจืขืกื•ืจืกืŸ ื–ืขื ืขืŸ ื™ืžืคึผืขื ืึทื˜ืจืึทื‘ืึทืœ. ื ืึธืš ืขื˜ืœืขื›ืข ืคืจื•ื•ื•ืŸ, ื‘ืขืฉืึทืก ื•ื•ืึธืก ืื™ืš ื’ืขื”ืื˜ ืฆื• ื”ืึทื ื“ืœืขืŸ ืžื™ื˜ ืคืึทืจืงืขืจ ืœื™ื™ืฅ, ืคื•ืกื’ื™ื™ืขืจ ืงืจืึธืกื™ื ื’ื– ืื•ืŸ ื‘ื™ื™ืกื™ืงืึทืœื–, ื˜ืจื™ื™ื ื’ ืฆื• ืื™ื‘ืขืจืฆื™ื™ื’ืŸ ื“ื™ ืกื™ืกื˜ืขืžืขืŸ ืึทื– ืื™ืš ื‘ื™ืŸ ืžืขื ื˜ืฉ, ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืึทื– ืงื™ื™ืึทืง ืื™ื– ื‘ืขืกื˜ืขืจ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืžื™ืจ, ื˜ืจืึธืฅ ื“ืขืจ ืคืึทืงื˜ ืึทื– ืืคื™ืœื• ืื•ื™ื‘ ืฆื• ืคื™ืœืข ื‘ืœืขื˜ืขืจ ื–ืขื ืขืŸ ืœืึธื•ื“ื™ื“ ืื™ืŸ ืึท ืงื•ืจืฅ ืฆื™ื™ึทื˜, ืื•ืŸ ื˜ืฉืขืงืก ืื•ื™ืš ืึธื ื”ื™ื™ื‘ืŸ. ืื™ืš ื’ืขืจืื˜ืŸ ืฆื• ืžืึทื›ืŸ ื“ื™ ื‘ืึธื˜ ืฉื™ืงืŸ ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ืคึผืœืึทืฅ ืžื™ื˜ ื™ื ื˜ืขืจื•ื•ืึทืœื– ืคื•ืŸ 4 ืฆื• 6 ืฉืขื”, ืื•ืŸ ืึทืœืฅ ื’ืขืืจื‘ืขื˜ ืคื™ื™ึทืŸ. ืคื•ืŸ ืฆื™ื™ื˜ ืฆื• ืฆื™ื™ื˜, ืฉื•ื•ืขืจื™ืงื™ื™ื˜ืŸ ืื•ื™ืคืฉื˜ื™ื™ืŸ ื•ื•ืขืŸ ืื™ืจ ืึทืจื‘ืขื˜ ืžื™ื˜ ืงื™ื™ึทืึทืง, ืึธื‘ืขืจ ืื•ื™ื‘ ื–ื™ื™ ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ืึธื ืฉื˜ืขืงืŸ ืื™ืจ ืžื™ื˜ ื˜ืฉืขืงืก, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื”ืึทื ื“ืœืขืŸ ืžื™ื˜ ื–ื™ื™ ืžืึทื ื™ื•ืึทืœื™ ืื•ืŸ ื“ืึทืŸ ืงืึทื˜ืขืจ ื“ื™ ื‘ืึธื˜, ืึธื“ืขืจ ื•ื•ืึทืจื˜ืŸ ืึท ื‘ื™ืกืœ ืฉืขื” ืื•ืŸ ื“ื™ ื˜ืฉืขืงืก ื–ืึธืœ ื”ืึทืœื˜ืŸ. ืื•ื™ื‘ ื ื™ื™ื˜ื™ืง, ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ืึทื“ืึทืคึผื˜ ื“ื™ ืงืึธื“ ืคึฟืึทืจ ืืŸ ืื ื“ืขืจ ืคึผืœืึทื˜ืคืึธืจืžืข, ืื•ืŸ ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื“ืึธืก, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืจื™ื›ื˜ ืขืก ืื™ืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ.

ืื•ื™ื‘ ืื™ืจ 'ืจืข ื ืึธืจ ืึธื ื”ื™ื™ื‘ ืžื™ื˜ ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผื™ื ื’ ืื•ืŸ ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ืกืŸ ื•ื•ืึธืก ืขื˜ืœืขื›ืข ื•ื•ืขื‘ืกื™ื˜ืขืก ื’ืขืจืึทื ื’ืœ ืžื™ื˜ ืขืก, ื“ืขืžืึธืœื˜ ืื™ื™ื“ืขืจ ืื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ื“ื™ื™ืŸ ืขืจืฉื˜ืขืจ ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ ื“ืขื ื’ืขื’ื ื˜, ื˜ืึธืŸ ื–ื™ืš ืึท ื˜ื•ื™ื•ื•ืข ืื•ืŸ ื˜ืึธืŸ ืึท Google ื–ื•ื›ืŸ ืื•ื™ืฃ ื“ื™ ื•ื•ืขืจื˜ืขืจ "ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผื™ื ื’ ืขื˜ื™ืงืขื˜" . ื“ื™ื™ืŸ ื™ืงืกืคึผืขืจืึทืžืึทื ืฅ ืงืขืŸ ืกื•ืฃ ื’ื™ื›ืขืจ ื•ื•ื™ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ื™ื–ืŸ ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผื™ื ื’.

ื’ืขื˜ื™ื ื’ ืกื˜ืึทืจื˜ืขื“

ื“ืึธ ืก ืึท ื’ืขื ืขืจืึทืœ ืื™ื‘ืขืจื‘ืœื™ืง ืคื•ืŸ ื•ื•ืึธืก ื•ื•ืขื˜ ืคึผืึทืกื™ืจืŸ ืื™ืŸ ืื•ื ื“ื–ืขืจ ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผืขืจ ืงืึธื“:

  • ืึทืจื™ื™ึทื ืคื™ืจ ื“ื™ ืคืืจืœืื ื’ื˜ ืœื™ื™ื‘ืจืขืจื™ื–.
  • ืขืคืŸ ืึท Google ืงืจืึธื•ื ืงื•ื•ื™ื˜ืœ.
  • ืจื•ืฃ ืึท ืคึฟื•ื ืงืฆื™ืข ื•ื•ืึธืก ืกื˜ืึทืจืฅ ื“ื™ ื‘ืึธื˜, ืคืึธืจืŸ ืขืก ื“ื™ ืฉื˜ืขื˜ ืื•ืŸ ื“ืึทื˜ืขืก ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ืขืŸ ืื™ืจ ื–ื•ื›ื˜ ืคึฟืึทืจ ื˜ื™ืงื™ืฅ.
  • ื“ื™ ืคึฟื•ื ืงืฆื™ืข ื ืขืžื˜ ื“ื™ ืขืจืฉื˜ืขืจ ื–ื•ื›ืŸ ืจืขื–ื•ืœื˜ืึทื˜ืŸ, ืกืึธืจื˜ื™ืจื˜ ืœื•ื™ื˜ ื‘ืขืกื˜ืขืจ, ืื•ืŸ ื’ื™ื˜ ืึท ืงื ืขืคึผืœ ืฆื• ืœืึธื“ืŸ ืžืขืจ ืจืขื–ื•ืœื˜ืึทื˜ืŸ.
  • ืืŸ ืื ื“ืขืจ ืคึฟื•ื ืงืฆื™ืข ืงืึทืœืขืงืฅ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ื’ืื ืฆืข ื‘ืœืึทื˜ ืื•ืŸ ืงืขืจื˜ ืึท ื“ืึทื˜ืŸ ืจืึทื.
  • ื“ื™ ืฆื•ื•ื™ื™ ืคืจื™ืขืจื“ื™ืงืข ืกื˜ืขืคึผืก ื–ืขื ืขืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืžื™ื˜ ืกืึธืจื˜ื™ื ื’ ื˜ื™ื™ืคึผืก ืœื•ื™ื˜ ื‘ื™ืœืขื˜ ืคึผืจื™ื™ึทื– (ื‘ื™ืœื™ืง) ืื•ืŸ ื“ื•ืจืš ืคืœื™ ื’ื™ื›ืงื™ื™ึทื˜ (ืคืึทืกื˜ืึทืกื˜).
  • ืึท ื‘ืœื™ืฆืคึผืึธืกื˜ ืžื™ื˜ ืึท ืงื™ืฆืขืจ ืคื•ืŸ ื‘ื™ืœืขื˜ ืคึผืจื™ื™ืกื™ื– (ื˜ืฉื™ืคึผืึทืกื˜ ื˜ื™ืงื™ืฅ ืื•ืŸ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืคึผืจื™ื™ึทื–) ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ืฉืจื™ืคื˜ ื‘ืึทื ื™ืฆืขืจ, ืื•ืŸ ืึท ื“ืึทื˜ืŸ ืจืึทื ืžื™ื˜ ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื•ื™ืกื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื“ื™ ื“ืจื™ื™ ืึทืคืึธืจืžืขื ืฉืึทื ื“ ืžืขื˜ืจื™ืงืก ืื™ื– ื’ืขืจืื˜ืขื•ื•ืขื˜ ื•ื•ื™ ืึทืŸ ืขืงืกืกืขืœ ื˜ืขืงืข.
  • ืึทืœืข ื“ื™ ืื•ื™ื‘ืŸ ืึทืงืฉืึทื ื– ื–ืขื ืขืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ืึท ืฆื™ืงืœ ื ืึธืš ืึท ื’ืขื’ืขื‘ืŸ ืฆื™ื™ื˜.

ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืื ื’ืขื•ื•ื™ื–ืŸ ืึทื– ื™ืขื“ืขืจ ืกืขืœืขื ื™ื•ื ืคึผืจื•ื™ืขืงื˜ ืกื˜ืึทืจืฅ ืžื™ื˜ ืึท ื•ื•ืขื‘ ืฉืึธืคืขืจ. ืื™ืš ื ื•ืฅ Chromedriver, ืื™ืš ืึทืจื‘ืขื˜ ืžื™ื˜ Google ืงืจืึธื•ื, ืึธื‘ืขืจ ืขืก ื–ืขื ืขืŸ ืื ื“ืขืจืข ืึธืคึผืฆื™ืขืก. PhantomJS ืื•ืŸ Firefox ื–ืขื ืขืŸ ืื•ื™ืš ืคืึธืœืงืก. ื ืึธืš ื“ืึทื•ื ืœืึธื•ื“ื™ื ื’ ื“ื™ ืฉืึธืคืขืจ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ืขืก ืื™ืŸ ื“ื™ ืฆื•ื ืขืžืขืŸ ื˜ืขืงืข, ืื•ืŸ ื“ืึธืก ืงืึทืžืคึผืœื™ืฅ ื“ื™ ืฆื•ื’ืจื™ื™ื˜ื•ื ื’ ืคึฟืึทืจ ื“ื™ ื ื•ืฆืŸ. ื“ื™ ืขืจืฉื˜ืข ืฉื•ืจื•ืช ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืฉืจื™ืคื˜ ืขืคืขื ืขืŸ ืึท ื ื™ื™ึท ืงืจืึธื•ื ืงื•ื•ื™ื˜ืœ.

ื”ืึทืœื˜ืŸ ืื™ืŸ ืžื™ื™ื ื•ื ื’ ืึทื– ืื™ืŸ ืžื™ื™ืŸ ื“ืขืจืฆื™ื™ืœื•ื ื’ ืื™ืš ื‘ื™ืŸ ื ื™ืฉื˜ ื˜ืจื™ื™ื ื’ ืฆื• ืขืคืขื ืขืŸ ื ื™ื™ึทืข ื›ืขืจื™ื™ื–ืึทื ื– ืฆื• ื’ืขืคึฟื™ื ืขืŸ ื’ืจื•ื™ืก ื“ื™ืœื– ืื•ื™ืฃ ืœื•ืคื˜ ื˜ื™ืงื™ืฅ. ืขืก ื–ืขื ืขืŸ ืคื™ืœ ืžืขืจ ืึทื•ื•ืึทื ืกื™ืจื˜ืข ืžืขื˜ื”ืึธื“ืก ืคื•ืŸ ื–ื•ื›ืŸ ืคึฟืึทืจ ืึทื–ืึท ืึธืคืคืขืจืก. ืื™ืš ื ืึธืจ ื•ื•ื™ืœืŸ ืฆื• ืคืึธืจืฉืœืึธื’ืŸ ืœื™ื™ืขื ืขืจ ืคื•ืŸ ื“ืขื ืžืึทื˜ืขืจื™ืึทืœ ืึท ืคึผืฉื•ื˜ ืึธื‘ืขืจ ืคึผืจืึทืงื˜ื™ืฉ ื•ื•ืขื’ ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื.

ื“ืึธ ืื™ื– ื“ื™ ืงืึธื“ ื•ื•ืึธืก ืžื™ืจ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ ืื•ื™ื‘ืŸ.

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 ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืžืึทื›ืŸ ื“ืขื ื‘ืึธื˜ "ืฉืœืึธืคืŸ" ืคึฟืึทืจ ืึท ื˜ืจืึทืค - ื ื•ืžืขืจ ืคื•ืŸ ืกืขืงื•ื ื“ืขืก ืื™ื™ื“ืขืจ ืื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืึท ื ื™ื™ึทืข ื–ื•ื›ืŸ ืึธืคึผืขืจืึทืฆื™ืข. ื•ืกื•ืึทืœืœื™, ืงื™ื™ืŸ ืื™ื™ืŸ ื‘ืึธื˜ ืงืขื ืขืŸ ื˜ืึธืŸ ืึธืŸ ื“ืขื. ืื•ื™ื‘ ืื™ืจ ืœื•ื™ืคืŸ ื“ื™ ืื•ื™ื‘ืŸ ืงืึธื“, ืึท ืงืจืึธื•ื ืคึฟืขื ืฆื˜ืขืจ ื•ื•ืขื˜ ืขืคืขื ืขืŸ, ื•ื•ืึธืก ื“ื™ ื‘ืึธื˜ ื•ื•ืขื˜ ื ื•ืฆืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื–ื™ื™ื˜ืœืขืš.

ืœืึธืžื™ืจ ื˜ืึธืŸ ืึท ื‘ื™ืกืœ ืขืงืกืคึผืขืจื™ืžืขื ื˜ ืื•ืŸ ืขืคืขื ืขืŸ ื“ื™ kayak.com ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืคึฟืขื ืฆื˜ืขืจ. ืžื™ืจ ื•ื•ืขืœืŸ ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ืฉื˜ืึธื˜ ืคื•ืŸ ื•ื•ืึธืก ืžื™ืจ ื–ืขื ืขืŸ ื’ืขื’ืื ื’ืขืŸ ืฆื• ืคืœื™ืขืŸ, ืื•ืŸ ื“ื™ ืฉื˜ืึธื˜ ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืฆื•, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื“ื™ ืคืœื™ ื“ืึทื˜ืขืก. ื•ื•ืขืŸ ื˜ืฉื•ื–ื™ื ื’ ื“ืึทื˜ืขืก, ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ื™ ืงื™ื™ื˜ ืคื•ืŸ +-3 ื˜ืขื’ ืื™ื– ื’ืขื ื™ืฆื˜. ืื™ืš ื’ืขืฉืจื™ื‘ืŸ ื“ืขื ืงืึธื“ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื•ื•ืึธืก ื“ื™ ืคึผืœืึทืฅ ื˜ืจืื’ื˜ ืื™ืŸ ืขื ื˜ืคืขืจ ืฆื• ืึทื–ืึท ืจื™ืงื•ื•ืขืก. ืื•ื™ื‘, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื•ื›ืŸ ืคึฟืึทืจ ื˜ื™ืงื™ืฅ ื‘ืœื•ื™ื– ืคึฟืึทืจ ืกืคึผืขืกื™ืคื™ืขื“ ื“ืึทื˜ืขืก, ืขืก ืื™ื– ืึท ื”ื•ื™ืš ืžืึทืฉืžืึธืขืก ืึทื– ืื™ืจ ื•ื•ืขื˜ ื”ืึธื‘ืŸ ืฆื• ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื‘ืึธื˜ ืงืึธื“. ื•ื•ืขืŸ ืื™ืš ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ืขื ืงืึธื“, ืื™ืš ืฆื•ืฉื˜ืขืœืŸ ืฆื•ื ืขืžืขืŸ ื“ืขืจืงืœืขืจื•ื ื’ืขืŸ, ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ืคื™ืœืŸ ืฆืขืžื™ืฉื˜, ืœืึธื–ืŸ ืžื™ืจ ื•ื•ื™ืกืŸ.

ืื™ืฆื˜ ื’ื™ื˜ ืื•ื™ืฃ ื“ื™ ื–ื•ื›ืŸ ืงื ืขืคึผืœ ืื•ืŸ ืงื•ืง ืื™ืŸ ื“ื™ ืœื™ื ืง ืื™ืŸ ื“ื™ ืึทื“ืจืขืก ื‘ืึทืจ. ืขืก ื–ืึธืœ ื–ื™ื™ืŸ ืขื ืœืขืš ืฆื• ื“ื™ ืœื™ื ืง ืื™ืš ื ื•ืฆืŸ ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืื•ื ื˜ืŸ ื•ื•ื• ื“ื™ ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืื™ื– ื“ืขืจืงืœืขืจื˜ kayak, ื•ื•ืึธืก ืกื˜ืึธืจื– ื“ื™ URL, ืื•ืŸ ื“ืขืจ ืื•ืคึฟืŸ ืื™ื– ื’ืขื ื™ืฆื˜ get ื•ื•ืขื‘ ืฉืึธืคืขืจ. ื ืึธืš ื’ืขื‘ืŸ ืึท ืงืœื™ืง ื“ืขื ื–ื•ื›ืŸ ืงื ืขืคึผืœ, ืจืขื–ื•ืœื˜ืึทื˜ืŸ ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื–ืŸ ืื•ื™ืฃ ื“ื™ ื‘ืœืึทื˜.

ืคึผื™ื˜ื”ืึธืŸ - ืึท ืึทืกื™ืกื˜ืึทื ื˜ ืื™ืŸ ื“ืขืจื’ื™ื™ื•ื ื’ ื‘ื™ืœื™ืง ืœื•ืคื˜ ื˜ื™ืงื™ืฅ ืคึฟืึทืจ ื™ืขื ืข ื•ื•ืืก ืœื™ื‘ืข ืฆื• ืึทืจื•ืžืคืึธืจืŸ
ื•ื•ืขืŸ ืื™ืš ื’ืขื•ื•ื™ื™ื ื˜ ื“ืขื ื‘ืึทืคึฟืขืœ get ืžืขืจ ื•ื•ื™ ืฆื•ื•ื™ื™ ืึธื“ืขืจ ื“ืจื™ื™ ืžืึธืœ ืื™ืŸ ืึท ื‘ื™ืกืœ ืžื™ื ื•ื˜, ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขื‘ืขื˜ืŸ ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ืจืขืงืึทืคึผื˜ื˜ืฉืึท. ืื™ืจ ืงืขื ืขืŸ ืคืึธืจืŸ ื“ืขื ื˜ืฉืขืง ืžืึทื ื™ื•ืึทืœื™ ืื•ืŸ ืคืึธืจื–ืขืฆืŸ ืขืงืกืคึผืขืจื™ืžืขื ื˜ื™ื ื’ ื‘ื™ื– ื“ื™ ืกื™ืกื˜ืขื ื“ื™ืกื™ื™ื“ื– ืฆื• ืœื•ื™ืคืŸ ืึท ื ื™ื™ึท ื˜ืฉืขืง. ื•ื•ืขืŸ ืื™ืš ื˜ืขืกื˜ืขื“ ื“ืขื ืฉืจื™ืคื˜, ืขืก ื’ืขื•ื•ืขืŸ ื•ื•ื™ ื“ืขืจ ืขืจืฉื˜ืขืจ ื–ื•ื›ืŸ ืกืขืกื™ืข ืื™ื– ืฉื˜ืขื ื“ื™ืง ื’ืœืึทื˜, ืึทื–ื•ื™ ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœื˜ ืฆื• ืขืงืกืคึผืขืจื™ืžืขื ื˜ ืžื™ื˜ ื“ืขื ืงืึธื“, ืื™ืจ ื•ื•ืึธืœื˜ ื ืึธืจ ื”ืึธื‘ืŸ ืฆื• ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืžืึทื ื™ื•ืึทืœื™ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื•ืŸ ืœืึธื–ืŸ ื“ื™ ืงืึธื“ ืœื•ื™ืคืŸ ืžื™ื˜ ืœืึทื ื’ ื™ื ื˜ืขืจื•ื•ืึทืœื– ืฆื•ื•ื™ืฉืŸ ื–ื•ื›ืŸ ืกืขืฉืึทื ื–. ืื•ืŸ ืื•ื™ื‘ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ืื™ื, ืึท ืžืขื ื˜ืฉ ืื™ื– ืึทื ืœื™ื™ืงืœื™ ืฆื• ื“ืึทืจืคึฟืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื‘ื™ืœืขื˜ ืคึผืจื™ื™ืกืึทื– ื‘ืืงื•ืžืขืŸ ืื™ืŸ 10 ืžื™ื ื•ื˜ ื™ื ื˜ืขืจื•ื•ืึทืœื– ืฆื•ื•ื™ืฉืŸ ื–ื•ื›ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–.

ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืึท ื‘ืœืึทื˜ ื ื™ืฆืŸ XPath

ืึทื–ื•ื™, ืžื™ืจ ื’ืขืขืคื ื˜ ืึท ืคึฟืขื ืฆื˜ืขืจ ืื•ืŸ ืœืึธื•ื“ื™ื“ ื“ืขื ืคึผืœืึทืฅ. ืฆื• ื‘ืึทืงื•ืžืขืŸ ืคึผืจื™ื™ืกื™ื ื’ ืื•ืŸ ืื ื“ืขืจืข ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ื•ืฆืŸ XPath ื˜ืขื›ื ืึธืœืึธื’ื™ืข ืึธื“ืขืจ CSS ืกืขืœืขืงื˜ืึธืจืก. ืื™ืš ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืฉื˜ืขืงืŸ ืžื™ื˜ XPath ืื•ืŸ ื”ืื˜ ื ื™ืฉื˜ ืคื™ืœืŸ ื“ื™ ื ื•ื™ื˜ ืฆื• ื ื•ืฆืŸ CSS ืกืขืœืขืงื˜ืึธืจืก, ืึธื‘ืขืจ ืขืก ืื™ื– ื’ืึทื ืฅ ืžืขื’ืœืขืš ืฆื• ืึทืจื‘ืขื˜ืŸ ืึทื–ื•ื™. ื ืึทื•ื•ื™ื’ืึทืฆื™ืข ืึทืจื•ื ืึท ื‘ืœืึทื˜ ืžื™ื˜ XPath ืงืขื ืขืŸ ื–ื™ื™ืŸ ื˜ืจื™ืงื™, ืื•ืŸ ืืคื™ืœื• ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ื“ื™ ื˜ืขืงื ื™ืงืก ื•ื•ืึธืก ืื™ืš ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ื•ื•ืึธืก ื™ื ื•ื•ืึทืœื•ื•ื“ ืงืึทืคึผื™ื™ื ื’ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื™ื“ืขื ื˜ื™ืคื™ืขืจืก ืคื•ืŸ ื“ื™ ื‘ืœืึทื˜ ืงืึธื“, ืื™ืš ืื™ื™ื ื’ืขื–ืขืŸ ืึทื– ื“ืึธืก ืื™ื–, ืื™ืŸ ืคืึทืงื˜, ื ื™ืฉื˜ ื“ืขืจ ืึธืคึผื˜ื™ืžืึทืœ ื•ื•ืขื’ ืฆื• ืึทืงืกืขืก ื“ื™ ื ื™ื™ื˜ื™ืง ืขืœืขืžืขื ื˜ืŸ. ืื’ื‘, ืื™ืŸ ื“ืขื ื“ืขืจ ื‘ื•ืš ื’ื™ื˜ ืึท ื•ื™ืกื’ืขืฆื™ื™ื›ื ื˜ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ ื‘ืึทืกื™ืงืก ืคื•ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื‘ืœืขื˜ืขืจ ื ื™ืฆืŸ XPath ืื•ืŸ CSS ืกืขืœืขืงื˜ืึธืจืก. ื“ืึธืก ืื™ื– ื•ื•ื™ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื•ื•ืขื‘ ื“ืจื™ื™ื•ื•ืขืจ ืื•ืคึฟืŸ ืงื•ืงื˜ ื•ื•ื™.

ืคึผื™ื˜ื”ืึธืŸ - ืึท ืึทืกื™ืกื˜ืึทื ื˜ ืื™ืŸ ื“ืขืจื’ื™ื™ื•ื ื’ ื‘ื™ืœื™ืง ืœื•ืคื˜ ื˜ื™ืงื™ืฅ ืคึฟืึทืจ ื™ืขื ืข ื•ื•ืืก ืœื™ื‘ืข ืฆื• ืึทืจื•ืžืคืึธืจืŸ
ืึทื–ื•ื™, ืœืึธื–ืŸ ืื•ื ื“ื– ืคืึธืจื–ืขืฆืŸ ืืจื‘ืขื˜ืŸ ืื•ื™ืฃ ื“ื™ ื‘ืึธื˜. ืœืึธืžื™ืจ ื ื•ืฆืŸ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ืขื ืคึผืจืึธื’ืจืึทื ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ื˜ืฉื™ืคึผืึทืกื˜ ื˜ื™ืงื™ืฅ. ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ื‘ื™ืœื“, ื“ื™ XPath ืกืขืœืขืงื˜ืึธืจ ืงืึธื“ ืื™ื– ื›ื™ื™ืœื™ื™ื˜ื™ื“ ืื™ืŸ ืจื•ื™ื˜. ืื™ืŸ ืกื“ืจ ืฆื• ื–ืขืŸ ื“ืขื ืงืึธื“, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจืขื›ื˜ ื’ื™ื˜ ืื•ื™ืฃ ื“ื™ ื‘ืœืึทื˜ ืขืœืขืžืขื ื˜ ืื™ืจ ื–ืขื ื˜ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ืื•ืŸ ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื ื“ื•ืจื›ืงื•ืง ื‘ืึทืคึฟืขืœ ืคื•ืŸ ื“ื™ ืžืขื ื™ื• ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ื™ื–ืŸ. ื“ืขืจ ื‘ืึทืคึฟืขืœ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืจื•ืคึฟืŸ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื‘ืœืึทื˜ ืขืœืขืžืขื ื˜ืŸ, ื“ื™ ืงืึธื“ ืคื•ืŸ ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื–ืŸ ืื•ืŸ ื›ื™ื™ืœื™ื™ื˜ื™ื“ ืื™ืŸ ื“ื™ ืงืึธื“ ืฆื•ืงื•ืงืขืจ.

ืคึผื™ื˜ื”ืึธืŸ - ืึท ืึทืกื™ืกื˜ืึทื ื˜ ืื™ืŸ ื“ืขืจื’ื™ื™ื•ื ื’ ื‘ื™ืœื™ืง ืœื•ืคื˜ ื˜ื™ืงื™ืฅ ืคึฟืึทืจ ื™ืขื ืข ื•ื•ืืก ืœื™ื‘ืข ืฆื• ืึทืจื•ืžืคืึธืจืŸ
ื–ืขืŸ ื‘ืœืึทื˜ ืงืึธื“

ื›ึผื“ื™ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืคื•ืŸ ืžื™ื™ืŸ ืจื™ื–ืึทื ื™ื ื’ ื•ื•ืขื’ืŸ ื“ื™ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคื•ืŸ ืงืึทืคึผื™ื™ื ื’ ืกืขืœืขืงื˜ืึธืจืก ืคึฟื•ืŸ ืงืึธื“, ื‘ืึทืฆืึธืœืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜ ืฆื• ื“ื™ ืคืืœื’ืขื ื“ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ.

ื“ืึธืก ืื™ื– ื•ื•ืึธืก ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ื•ื•ืขืŸ ืื™ืจ ื ืึธื›ืžืึทื›ืŸ ื“ื™ ืงืึธื“:

//*[@id="wtKI-price_aTab"]/div[1]/div/div/div[1]/div/span/span

ืฆื• ืฆื™ื™ื›ืขื ืขืŸ ืขืคึผืขืก ื•ื•ื™ ื“ืึธืก, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจืขื›ื˜ ื’ื™ื˜ ืื•ื™ืฃ ื“ื™ ืึธืคึผื˜ื™ื™ืœื•ื ื’ ืคื•ืŸ ืงืึธื“ ื•ื•ืึธืก ืื™ืจ ื–ืขื ื˜ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ืื•ืŸ ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื ื‘ืึทืคึฟืขืœ Copy> Copy 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, ื•ื•ืึธืก ืื™ื– ื’ืขื ื•ืฆื˜ ืฆื• ื ืขืžืขืŸ ืื™ืจ ืฆื• ืึท ื‘ืœืึทื˜ ื•ื•ืึธืก ื•ื•ืขื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ื–ื•ื›ืŸ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืื•ื™ืกื’ืขืฉื˜ืขืœื˜ ืœื•ื™ื˜ ื–ื™ื™ืขืจ ื‘ืขืกื˜ืขืจ ื’ืœื™ื™ึทื›ืŸ ืฆื• ื“ื™ ืึธื ืคึฟืจืขื’. ื ืึธืš ื“ืขืจ ืขืจืฉื˜ืขืจ ืกืงืจื™ื™ืคึผื™ื ื’ ืกืขืกื™ืข, ืžื™ืจ ื•ื•ืขืœืŸ ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ ืคึผืจื™ื™ืกื™ื– ืื™ืŸ ื“ื™ ื˜ื™ืฉ ืื™ืŸ ื“ื™ ืฉืคึผื™ืฅ ืคื•ืŸ ื“ื™ ื‘ืœืึทื˜. ื ื™ื™ืžืœื™, ืžื™ืจ ื•ื•ืขืœืŸ ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืžื™ื ื™ืžื•ื ื‘ื™ืœืขื˜ ืคึผืจื™ื™ึทื– ืื•ืŸ ื“ื™ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืคึผืจื™ื™ึทื–. ืึทืœืข ื“ืขื, ืฆื•ื–ืึทืžืขืŸ ืžื™ื˜ ื“ื™ ืคึผืจืึธื’ื ืึธื– ืืจื•ื™ืก ื“ื•ืจืš ื“ื™ ืคึผืœืึทืฅ, ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ื“ื•ืจืš E- ื‘ืจื™ื•ื•. ืื•ื™ืฃ ื“ืขื ื‘ืœืึทื˜, ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื˜ื™ืฉ ื–ืึธืœ ื–ื™ื™ืŸ ืื™ืŸ ื“ืขืจ ืื•ื™ื‘ืขืจืฉื˜ืขืจ ืœื™ื ืงืก ื•ื•ื™ื ืงืœ. ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ืขื ื˜ื™ืฉ, ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ืงืขืŸ ืคืึทืจืฉืึทืคืŸ ืึท ื˜ืขื•ืช ื•ื•ืขืŸ ืื™ืจ ื–ื•ื›ืŸ ืžื™ื˜ ืคึผื™ื ื˜ืœืขืš ื“ืึทื˜ืขืก, ื•ื•ื™ื™ึทืœ ืื™ืŸ ื“ืขื ืคืึทืœ ื“ื™ ื˜ื™ืฉ ืื™ื– ื ื™ืฉื˜ ื’ืขื•ื•ื™ื–ืŸ ืื•ื™ืฃ ื“ืขื ื‘ืœืึทื˜.

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.....')

ืื™ืš ื˜ืขืกื˜ืขื“ ื“ืขื ืฉืจื™ืคื˜ ื ื™ืฆืŸ ืึท ืึทื•ื˜ืœื•ืง ื—ืฉื‘ื•ืŸ (hotmail.com). ืื™ืš ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื˜ืขืกื˜ืขื“ ืขืก ืฆื• ืึทืจื‘ืขื˜ืŸ ืจื™ื›ื˜ื™ืง ืžื™ื˜ ืึท Gmail ื—ืฉื‘ื•ืŸ, ื“ืขื E- ื‘ืจื™ื•ื• ืกื™ืกื˜ืขื ืื™ื– ื’ืึทื ืฅ ืคืึธืœืงืก, ืึธื‘ืขืจ ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ืžืขื’ืœืขืš ืึธืคึผืฆื™ืขืก. ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ ืึท Hotmail ื—ืฉื‘ื•ืŸ, ืื™ืจ ื ืึธืจ ื“ืึทืจืคึฟืŸ ืฆื• ืึทืจื™ื™ึทืŸ ื“ื™ื™ืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ืงืึธื“, ื›ึผื“ื™ ืึทืœืฅ ื–ืึธืœ ืึทืจื‘ืขื˜ืŸ.

ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ืึธืก ืคึผื•ื ืงื˜ ืื™ื– ื’ืขื˜ืืŸ ืื™ืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืกืขืงืฉืึทื ื– ืคื•ืŸ ื“ื™ ืงืึธื“ ืคึฟืึทืจ ื“ืขื ืคึฟื•ื ืงืฆื™ืข, ืื™ืจ ืงืขื ืขืŸ ื ืึธื›ืžืึทื›ืŸ ื–ื™ื™ ืื•ืŸ ืขืงืกืคึผืขืจื™ืžืขื ื˜ ืžื™ื˜ ื–ื™ื™. ืขืงืกืคึผืขืจื™ืžืขื ื˜ื™ื ื’ ืžื™ื˜ ื“ืขื ืงืึธื“ ืื™ื– ื“ืขืจ ื‘ืœื•ื™ื– ื•ื•ืขื’ ืฆื• ื˜ืึทืงืข ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืขืก.

ื’ืจื™ื™ื˜ ืกื™ืกื˜ืขื

ืื™ืฆื˜ ืึทื– ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขื˜ืืŸ ืึทืœืฅ ืžื™ืจ ื’ืขืจืขื“ื˜ ื•ื•ืขื’ืŸ, ืžื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึท ืคึผืฉื•ื˜ ืฉืœื™ื™ืฃ ื•ื•ืึธืก ืจื•ืคื˜ ืื•ื ื“ื–ืขืจ ืคืึทื ื’ืงืฉืึทื ื–. ื“ืขืจ ืฉืจื™ืคื˜ ืจื™ืงื•ื•ืขืก ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ื•ื•ืขื’ืŸ ืฉื˜ืขื˜ ืื•ืŸ ื“ืึทื˜ืขืก. ื•ื•ืขืŸ ืื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืžื™ื˜ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืจื™ืกื˜ืึทืจื˜ ืคื•ืŸ ื“ื™ ืฉืจื™ืคื˜, ืื™ืจ ื–ืขื ืขืŸ ืึทื ืœื™ื™ืงืœื™ ืฆื• ื•ื•ืขืœืŸ ืึทืจื™ื™ึทืŸ ื“ื™ ื“ืึทื˜ืŸ ืžืึทื ื™ื•ืึทืœื™ ื™ืขื“ืขืจ ืžืึธืœ, ืึทื–ื•ื™ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืฉื•ืจื•ืช, ืคึฟืึทืจ ื“ื™ ืฆื™ื™ื˜ ืคื•ืŸ ื˜ืขืกื˜ื™ื ื’, ืงืขื ืขืŸ ื–ื™ื™ืŸ ืงืึทืžืขื ื˜ืึทื“ ื“ื•ืจืš ื•ื ืงืึธืžืžืขื ื˜ื™ื ื’ ื“ื™ ืื•ื ื˜ืขืจ ื–ื™ื™, ืื™ืŸ ื•ื•ืึธืก ื“ื™ ื“ืึทื˜ืŸ ื“ืืจืฃ ื“ื•ืจืš ื“ื™ ืฉืจื™ืคื˜ ืื™ื– ืฉื•ื•ืขืจ ืงืึธื“ืขื“.

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 ืึทื–ื•ื™ ืึทื– ืขืก ืกืขื ื“ื– ื˜ืขืงืกื˜ ืึทืจื˜ื™ืงืœืขืŸ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื™ืžื™ื™ืœื–. ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืึท ื•ื•ืคึผืŸ ืึธื“ืขืจ ืขืคึผืขืก ืึทื ื“ืขืจืฉ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ืขื˜ืœืขื›ืข ืกืขืจื•ื•ืขืจืก ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™. ืขืก ืื™ื– ืื•ื™ืš ืึท ืคึผื™ืจื™ืึทื“ื™ืงืœื™ ืขืจื™ื™ื–ื™ื ื’ ืคึผืจืึธื‘ืœืขื ืžื™ื˜ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ืขื ืคึผืœืึทืฅ ื‘ืึทื ื™ืฆืขืจ ืฆื• ื–ืขืŸ ืื•ื™ื‘ ืขืจ ืื™ื– ืึท ืžืขื ื˜ืฉ, ืึธื‘ืขืจ ื“ืขื ืคึผืจืึธื‘ืœืขื ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืกืึทืœื•ื•ื“. ืื™ืŸ ืงื™ื™ืŸ ืคืึทืœ, ืื™ืฆื˜ ืื™ืจ ื”ืึธื‘ืŸ ืึท ื‘ืึทื–ืข ืึทื– ืื™ืจ ืงืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœื˜. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืึทืŸ ืขืงืกืกืขืœ ื˜ืขืงืข ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื•ื•ื™ ืึท ืึทื˜ืึทื˜ืฉืžืึทื ื˜ ืฆื• ืึทืŸ E- ื‘ืจื™ื•ื•.

ืคึผื™ื˜ื”ืึธืŸ - ืึท ืึทืกื™ืกื˜ืึทื ื˜ ืื™ืŸ ื“ืขืจื’ื™ื™ื•ื ื’ ื‘ื™ืœื™ืง ืœื•ืคื˜ ื˜ื™ืงื™ืฅ ืคึฟืึทืจ ื™ืขื ืข ื•ื•ืืก ืœื™ื‘ืข ืฆื• ืึทืจื•ืžืคืึธืจืŸ

ื‘ืœื•ื™ื– ืจืขื’ื™ืกื˜ืจื™ืจื˜ ื ื™ืฆืขืจืก ืงืขื ืขืŸ ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ ืื™ืŸ ื“ื™ ื™ื‘ืขืจื‘ืœื™ืง. ืกื™ื™ืŸ ืืจื™ื™ืŸื‘ื™ื˜ืข.

ืฆื™ ืื™ืจ ื ื•ืฆืŸ ื•ื•ืขื‘ ืกืงืจื™ื™ืคึผื™ื ื’ ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื–?

  • ื™ืึธ

  • ืงื™ื™ืŸ

8 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื’ืขืฉื˜ื™ืžื˜. 1 ื‘ืื ื•ืฆืขืจ ื”ืื˜ ื–ื™ืš ืืคื’ืขื”ืืœื˜ืŸ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’