0

I can't understand what's generate this error. The output of the program:

requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: https://www.google.com/sorry/index?continue=https://www.google.com/search%3Fq%3D&q=EgSDSNw2GOvMrY4GIhAv6afhD31szM1D6odDwRpgMgFy

The code:

import bs4
import webbrowser 
import requests
import sys
import os



headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36', "Upgrade-Insecure-Requests": "1","DNT": "1","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language": "en-US,en;q=0.5","Accept-Encoding": "gzip, deflate"}

def main():
    os.chdir(os.path.dirname(os.path.abspath(__file__)))
    #assert len(sys.argv) > 1, 'Error! The command cannot be empty'
    
    res = requests.get('https://www.google.com/search?q='+  ''.join(sys.argv[1:]))
    #res = requests.get('https://www.youtube.com/results?search_query=' + '+'.join(sys.argv[1:]))
    res.raise_for_status()


if __name__ == '__main__':
    main()

I've tried add the headers, but the result was the same.

Edit: Searching for the answer, i found a code that contained the follow piece:

headers = {
        'cookie': 'CGIC=InZ0ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSxpbWFnZS93ZWJwLGltYWdlL2FwbmcsKi8qO3E9MC44LGFwcGxpY2F0aW9uL3NpZ25lZC1leGNoYW5nZTt2PWIz; HSID=AenmNVZxnoADsXz_x; SSID=AjbLhhwkjh8f3FOM8; APISID=IqkNtUA0V2DXlees/A0tA9iPSadMC2X6dt; SAPISID=8-N4B06I_D5N1mvR/AleccT6Zt0QllrukC; CONSENT=YES+UA.en+; OTZ=5204669_48_48_123900_44_436380; SID=rAd3UAFN_dCIGQ87HqDZZGiNyxdz0dL4dZKy_XquqSr_CHTzqSzfDdNTfLmA2xCMEZOZMA.; ANID=AHWqTUnDWUSHdvWhJiIoPxMAKYXmVtHCQIq7LBMYgiSlZZr3AMGTwY2aVUdjeY7z; NID=193=QImFbOa1vnKpflG8yJytqPXbJYJ9k8fWbIzQMGExsMa4g5oJwdnI56WNjgEVFAyAPJ1SEEOQ-zlW4HAUv-JLj0yAUImTgeT1syDIgFTMWAqxdz10lWRlzFC-3Fmjv6xJcqm2o6RKI50dmb7GetiheNdSAYPkAjng_c0lOHoXZLmtMwFOpkPTrQwVyUW8R2x4o1ux3OW3_kEbR_BREowRV8lVqrsnyo1ffC_Pm40zf81k7aS0cv9esYweGHF6Lxd532z4wA; 1P_JAR=2019-12-06-16; DV=k7BRh0-RaJtZsO9g7sjbrkcKoUjC7RYhxDh5AdfYgQAAAID1UoVsAVkvPgAAAFiry7niUB6qLgAAAGCQehpdCXeKnikKAA; SEARCH_SAMESITE=CgQIvI4B; SIDCC=AN0-TYv-lU3aPGmYLEYXlIiyKMnN1ONMCY6B0h_-owB-csTWTLX4_z2srpvyojjwlrwIi1nLdU4',
        'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/75.0.3770.142 Chrome/75.0.3770.142 Safari/537.36'
    }

By using this line in my code, it works and the problem with 429 error request was solved. But still i can't understand why this works.

zero
  • 41
  • 4
  • 2
    Seems like Google banned your requests. Maybe it banned your IP, so headers won't help in this case – Yevhen Bondar Dec 28 '21 at 19:38
  • 1
    Does this answer your question? [How to avoid HTTP error 429 (Too Many Requests) python](https://stackoverflow.com/questions/22786068/how-to-avoid-http-error-429-too-many-requests-python) – G. Anderson Dec 28 '21 at 19:41
  • That 429 indicates that you're sending too many requests and they would like you to stop before they ban your connections, 429 is (generally) a temporary error that will go away if you stop spamming http requests – G. Anderson Dec 28 '21 at 19:42
  • Not so much of an issue, but the way you are importing your modules goes against [PEP8](https://www.python.org/dev/peps/pep-0008/#imports) – Wondercricket Dec 28 '21 at 19:44

0 Answers0