【发布时间】:2019-02-01 19:32:21
【问题描述】:
我使用 python 进行网页抓取,但 instagram 检测设备,例如:
设备·Python 请求·x 城市,x
并阻止连接,
我该如何解决?
我尝试使用fake_useragent 或browser manual setting
代码:
def login(self):
print ('Trying to login as %s...\n' % (self.username))
self.s.headers.update({
'Accept': '*/*',
'Accept-Encoding' : 'gzip, deflate',
'Accept-Language' : 'en-US;q=0.6,en;q=0.4',
'authority': 'www.instagram.com',
'ContentType' : 'application/x-www-form-urlencoded',
'Connection': 'keep-alive',
'Host' : 'www.instagram.com',
'origin': 'https://www.instagram.com',
'Referer': 'https://www.instagram.com',
'Upgrade-Insecure-Requests':'1',
'UserAgent':self.ua.random,
'x-instagram-ajax':'1',
'X-Requested-With': 'XMLHttpRequest'
})
r = self.s.get('https://www.instagram.com/')
self.s.headers.update({'X-CSRFToken' : r.cookies.get_dict()['csrftoken']})
r = self.s.post('https://www.instagram.com/accounts/login/ajax/', data={'username':self.username, 'password':self.password}, allow_redirects=True)
self.s.headers.update({'X-CSRFToken' : r.cookies.get_dict()['csrftoken']})
loginstatus = json.loads(r.text)
if loginstatus['authenticated'] == True :
print ('Login Success')
self.login_status=True
return True
elif loginstatus['authenticated'] == False :
return False
【问题讨论】:
-
将
UserAgent更改为User-Agent
标签: python python-requests instagram