【发布时间】:2016-01-24 09:29:01
【问题描述】:
url = 'https://www.instagram.com/accounts/login/ajax/'
values = {'username' : 'User',
'password' : 'Pass'}
#'User-agent', ''
data = urllib.urlencode(values)
req = urllib2.Request(url, data,headers={'User-Agent' : "Mozilla/5.0"})
con = urllib2.urlopen( req )
the_page = response.read()
有人对此有任何想法吗?我不断收到错误“403 禁止”。 它可能的 instagram 有一些东西不允许我通过 python 连接(我不想通过他们的 API 连接)。这到底是怎么回事,有人有什么想法吗?
谢谢!
编辑:添加更多信息。
我遇到的错误是这样的
This page could not be loaded. If you have cookies disabled in your browser, or you are browsing in Private Mode, please try enabling cookies or turning off Private Mode, and then retrying your action.
我编辑了我的代码,但仍然出现该错误。
jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
print len(jar) #prints 0
opener.addheaders = [('User-agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36')]
result = opener.open('https://www.instagram.com')
print result.getcode(), len(jar) #prints 200 and 2
url = 'https://www.instagram.com/accounts/login/ajax/'
values = {'username' : 'username',
'password' : 'password'}
data = urllib.urlencode(values)
response = opener.open(url, data)
print response.getcode()
【问题讨论】:
-
我猜用户代理不会削减它。您需要其余的 cookie,也许还需要一些标头。在 instagram 上启动控制台并输入
document.cookie并将它们复制到此处。此外,它与 Python 无关,它也不会让你用 CURL 来做这件事。 -
我的超能力表明需要使用他们的 OAuth API 登录。也就是说,这意味着您的应用程序的用户将需要被定向到网页以获取需要交给您的应用程序的访问令牌(和/或刷新令牌)。快速搜索“Instagram OAuth”会找到this page。
标签: python instagram-api