This breaks with using standard web scraping methods (non-headless JS engines). Had to deal with this issue recently due to everything being a damn SPA now. Look into Selenium for running headless browsers if looking to scrape the modern web.
I used to use mozrepl back in the day before FF Quantum (or a version nearby) broke it, worked great- run the browser(s) via telnet. Could run as many browsers as memory would allow.
Depending on the use case you might try imaging the page, then send the image to an ML model for full text before indexing. If you need links extracted, Selenium also supports parsing the assembled DOM: https://github.com/kordless/grub-2.0/tree/main/aperture
While I certainly don't disagree that many sites need selenium these days, I find it's often possible to go straight to the AJAX/xHR source and get a pre-parsed JSON with all the data you're looking for.
I know some people think all scraping is bad or malicious. I'd like to point out this is a perfectly legitimate use case for it, in fact this is how Google Search operates.
Web scraping done correctly should be barely noticeable if at all to the operators. Don't send 10,000 req/s, have aggressive delays, make your retries extremely generous, try to avoid pages or actions you know are "heavy". You don't need to update data from every product page every 5 minutes.
My guess is that scraping is getting heavier because scrapers have to use headless browsers now. And so, probably downloading artifacts they don't need...because they can't tell what's needed or not, at least with js.
7 comments
[ 4.4 ms ] story [ 27.8 ms ] threadWeb scraping done correctly should be barely noticeable if at all to the operators. Don't send 10,000 req/s, have aggressive delays, make your retries extremely generous, try to avoid pages or actions you know are "heavy". You don't need to update data from every product page every 5 minutes.