El siguiente código de Python debería capturar un CSRF toka> cookie de Instagram.com, pero recibo un mensaje de error al ejecutar el programa a través de cualquier tipo de proxy HTTPS o SOCKS5, informándome que no se proporciona la cookie CSRF.
Si se comenta s.proxies
para que el programa no se ejecute a través de un proxy, funciona bien sin error, y Instagram.com proporciona una cookie de token CSRF.
Entonces, mi pregunta es: ¿cómo detecta Instagram que estoy ejecutando el programa desde un proxy? En otras palabras, ¿cómo se diferencia entre una solicitud normal y una solicitud que se ejecuta a través de un proxy?
import requesocks
import requests
s = requesocks.session()
# Tor uses the 9050 port as the default socks port
s.proxies = {'https': 'socks5://127.0.0.1:9050'}
url = 'https://www.instagram.com/accounts/web_create_ajax/'
s.get(url)
tok = s.cookies['csrftoken']
#Outputs:
#Traceback (most recent call last):
#File "tor.py", line 24, in <module>
#tok = s.cookies['csrftoken']
#KeyError: 'csrftoken