For a lot of web scraping tasks, an HTTP client is enough to extract a page’s data. However, when it comes to dynamic websites, a headless browser sometimes becomes indispensable. In this tutorial, we will build a web scraper that can scrape dynamic websites based on Node.js and Puppeteer.
Read more…
In this article, Stephanie dives into the past by going back to the beginning of HTML and tracing the evolution of form controls through to the present and the current state of working with them.
Read more…
There is now a specification for native CSS masonry layout, as part of the Grid Layout spec. In this article, Rachel Andrew explains how it works with the help of a couple of demos you can try out in Firefox Nightly.
Read more…
In this tutorial, we’re going to learn how to use the Web Worker API to manage time-consuming and UI-blocking tasks in a JavaScript app by building a sample web app that leverages Web Workers.
Read more…
In this article, we take a look at each part of Houdini, its current browser support, and see how they can be used today using progressive enhancement.
Read more…
To prevent layout shifts and improve performance scores, we need to always set width and height attributes on our images. Here’s why and when it matters.
Read more…
Transliteration is a popular way to input non-English characters using an English keyboard. This article explains a new method to eliminate such browser-related problems when developing web apps that use transliteration.
Read more…