下面的代码应该从Instagram.com获取一个“csrf令牌”cookie,但是在通过Tor运行程序时我收到错误消息(在此代码的底部注释掉)告诉我“csrf”cookie不是没提供。如果s.proxies被注释掉,程序运行正常而没有错误,Instagram.com提供了一个“csrf令牌”cookie。关于为什么Instagram在连接Tor时没有提供这个cookie的想法,以及关于如何让它提供所述cookie的想法?
import requesocks
import requests
s = requesocks.session()
# Tor uses the 9050 port as the default socks port
s.proxies = {'http': 'socks5://127.0.0.1:9050',
'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
答案 0 :(得分:0)
Instagram服务将请求视为源自127.0.0.1,因此不包括csrf cookie