Inspiration
As college students, we want to be able during our time at university. However, this presents a challenge because traveling is very expensive. Hence, we want to be able to use our credit cards to earn miles as we pay for things we normally buy, then spend those miles on cheap air travel. This part is generally very easy.
However, what's hard is finding flight to spend miles on. In order to check a flight, it takes about 45 seconds because of all the roadblocks that different airlines put in front of you to slow you down. Furthermore, these flights are released in limited quantities every few hours, usually weeks in advance from the flight date. They don't want people using miles because they earn less.
What it does
This is where SingaporeSurfer comes in. It automates the process of searching for airline flights so that instead of manually searching for flights every hour, all a person has to do is put in their departure and arrival dates, along with desired class, and it'll automatically check whether a flight is available. It handles sign in, search, and bot detection on Singapore airlines' website.
How we built it
This project was built on the Chrome webextension platform using Javascript. It also uses Python and OpenCV to handle captcha solving, however we did not have time to fully implement that into our extension.
Challenges we ran into
Figuring out how to get past bot detection on Singapore Airlines' website was incredibly hard, and took us several hours, because the website uses Distil Networks, a statistical, machine learning based, bot detection algorithm. This meant that we were unable to simply scrape their network with something like PhantomJS or Selenium. We had to try many different approaches to understand how the statistical detection worked before we finally figured out that by using a real browser session with a web extension, we could both get past the detection and still directly access web elements.
Accomplishments that we're proud of
We shipped it!!
What we learned
- Statistical bot detection is very good
- Chrome puts extra variables into Chrome for bot detection
- Singapore Airlines is slow because they have lots of bot detection, which resulted in us needing to bot them.
What's next for SingaporeSurfer
We're going to use it to find flights
Built With
- chrome
- javascript
- webextension
Log in or sign up for Devpost to join the conversation.