I had a web scraper project.

It checked around 80 websites.
The goal was straightforward: fetch the page HTML and extract specific data.

Getting the page source is easy:

Most sites worked fine.

But a few returned no data.

I check the DevTools > Inspect on those pages.
The HTML was there.
The data was there.

Still, my scraper found nothing.

That is when it clicked.

Page Source and Inspect are not the same thing.

Many modern websites use client-side rendering with JavaScript frameworks like React, Vue, or Angular.
The server often sends an almost empty HTML shell, and JavaScript fills the page later by calling APIs.

Those few websites were loading data with JavaScript.
The server response was almost without valuable data.
The browser filled it later (they call it CSR or client side rendering!)

Once I understood this, I found the fix quickly.
I ran Selenium.

The page rendered like a real browser.
The data appeared.
The scraper worked.

Lesson learned.

If the data exists only in Inspect,
requests.get() will never see it.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut