Hacker News new | ask | show | jobs
by relyks 519 days ago
Maybe try changing the user agent? I can use Google on my Kindle's web browser and that can barely handle Javascript (though the Kindle does do limited execution)
3 comments

I have tried spoofing the user agent. No effect. It seems to be if the browser is new enough then if JS is turned off it blocks you. But if you use a really old browser (~2015 Firefox) that doesn't support modern stuff it still allows non-JS search. I think they must have the server looking at HTTP header or fingerprinting or something. I don't think they could do the redirect based on CSS or HTML5 support without JS being run.
I believe they're doing a meta-tag redirect (possibly inside a noscript tag?) in at least some cases. Source: I'm developing a web engine that doesn't have JS support.
That's exactly what they are doing:

    <!DOCTYPE html>
    <html>
      <head><title>Google Search</title>...</head>
      <body>
        <noscript>
          <meta content="0;url=/httpservice/retry/enablejs?sei=..." http-equiv="refresh">
          <div style="display:block">Please click <a href="/httpservice/retry/enablejs?sei=...">here</a> if you are not redirected within a few seconds.</div>
        </noscript>...
You're correct.

    <noscript><meta content="0;url=/httpservice/retry/enablejs?sei=a3qIZ42cGcvcp84P5p_mwQI" http-equiv="refresh"><style>table,div,span,p{display:none}</style><div style="display:block">Please click <a href="/httpservice/retry/enablejs?sei=a3qIZ42cGcvcp84P5p_mwQI">here</a> if you are not redirected within a few seconds.</div></noscript></header>
Here's a skeleton overlay.js for an old style firefox extension to mitigate the meta-redirect part of the blocking.

    var remover = {
        init: function() {
            var appcontent = document.getElementById("appcontent");
            if(appcontent) {
                appcontent.addEventListener("DOMContentLoaded", 
                    function(e) {
                        var doc = e.originalTarget;
                        if(doc instanceof HTMLDocument) {
                            var noscripts = doc.getElementsByTagName('noscript');
                            for(var i = 0; i < noscripts.length; i++) {
                                //if(noscripts[i].innerHTML.indexOf('meta content="0;url=/httpservice/retry/enablejs?sei=') != -1) {
                                    noscripts[i].parentNode.removeChild(noscripts[i]);
                                //}
                            }
                        }
                    }, true);
            }
        }
};

window.addEventListener("load", function() { remover.init(); }, false);

Have you tested this? I don't think this will help much because you'll just get a page that requires JavaScript to function.
That depends. It works on setups where google still gives you the old html results but not one setups where it sends you to the js application. So on 3 out of 5 of my desktop setups it works. On the ones where, for some reason, google only sends me to the JS app, it doesn't work like you suggest, or, it does, but I'm just left looking at a blank page.
This won't help indeed, the noJS page now is only this redirect and contains no search results.

It’s a blank page with one line of text: “Please click here if you are not redirected within a few seconds”.

Other browsers, just an ad to use one of five other browsers, and incidentally use Javascript. Always use noscript to reduce the attack surface.

For the dyed-in-the-wool, lynx https://www.google.com, tab and type in test, tab and enter, Now how can I get lynx to remove the ad?

Startpage search on "Google requires Javascript" replies "Allow JavaScript in your browser - Google AdSense Help" - now isn't that special?

The Lynx user agent string works for now:

    Lynx/2.8.6rel.5 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/1.0.0a