There is no more ignoring big data and the business revolution that is about to come with the widespread implementation of it. Not unless you want to get eliminated from the market real soon. In this scenario where companies are aggressively looking to acquire insightful data from the web, many end up deciding to acquire data on their own using web scraping. Unfortunately, most are oblivious to the challenges associated with data acquisition.
Instead of trying to find a way to get yourself out of the mess you’re about to be in, consider this post as a warning sign before you are deep in it with no way out. To clear the air, we are talking about web crawlers programmed specifically for a site, not some generic DIY scraper tool. DIY web scraping tools have their own set of downsides that make them a bad choice for use in a company for serious data acquisition. If you are planning to do in-house scraping, make an informed decision after having a look at these common bottlenecks you might have to face in the data extraction journey.
Most websites are highly complicated
Once you actually find out how complicated some web pages can be, you will have deep respect for all those web browsers that manage to make sense of these pages. Never expect proper documentation inside the code and expect a lot of bad coding practices in even the most popular websites. One somewhat reasonable explanation is that the pages are meant to be displayed to humans and not bots. However, this isn’t making your web crawler programming any easier. You might end up spending hours trying to figure out something simple as the div class that encloses a particular data point you need.
Lack of Consistency in information and navigation
In many cases, you would find multiple pages on a site, with exactly the same URL structure and same information, or maybe slightly different. Which one would you crawl and what if the other one had something more important? One of these pages might have more useful information and the other one could be lacking something critical. This breaks all the general conventions of a web page and makes navigation sound like a big joke. Situations like these happen quite often in web scraping and instead of filling your analytics system with more data, this fills your brain with frustration.
If this wasn’t enough, the same type of page on different sections of a website might have completely different structures. This typically happens on large websites, because different sections are being managed by different teams which makes perfect sense for them. You could get fooled into thinking they have the same structure because they’re made to look the same on the surface. The painful realization that the underlying HTML has a different structure and the CSS were fooling you will have costed you hours by then. There goes your dream of HTML scraping, out of the window.
Debugging will consume most of your time
80% of creating a web scraping set up is debugging. Your web crawler will break quite often. It’s just a matter of time. It could even stop working just after you’ve coded it depending on how malformed the HTML you are trying to parse is. Sometimes this happens later when you’re least expecting it, triggered by a change made on the source website, sending your web crawler into a death loop. It might not be your fault, but you’re the one to deal with this now that you’re managing a web scraping set up. If you don’t want to deal with sleepless nights of debugging the broken web crawler, it’s better to quit now.
You can’t buy them a better server
You might have a super-fast web crawler set up, but it could still lag if your target server is not good enough. If scraping is not fast enough, it’s probably because they have a higher load on their servers or their servers are simply not that great. Your web crawler is always limited to the speed of the target server. The only solution to this is to crawl more pages in parallel, but that gives birth to a totally different problem which we are about to discuss later.
Setting up a technical stack can be overwhelming
You will have to set up your technical stack on the cloud all by yourself which obviously calls for high technical skills. Moreover, managing a cloud based technical stack comes with its own set of problems. Distributed clusters are used to minimize failovers in the process, but their uptime has to be maintained which is a time consuming task in itself. In fact, managing the setup itself will consume a good share of your development time.
Websites will block you
Some websites don’t enjoy getting crawled, at least not by you. Although they can’t really stop you, they will still try their best. Unless you have sophisticated mechanisms to overcome the barriers put up by them every now and then, it is better to quit scraping or leave that site alone. It can be extremely annoying to deal with blocking websites if you are pretty new to web scraping.
Just don’t go for in-house web scraping if you can’t deal with the above mentioned problems. It is like spending your serious programming efforts on something that is destined to break, sooner or later. If you can deal with these along with the business activities specific to your industry, that’s some really versatile team that you have. If web scraping is not your cup of tea, you could always go with a reliable data partner.
Stay tuned for our next article on the hit augmented reality game – Pokemon Go.
Planning to acquire data from the web? We’re here to help. Let us know about your requirements.