Skip to content
This repository has been archived by the owner on Oct 14, 2023. It is now read-only.

instagram.exceptions.UnexpectedResponse #63

Open
grafist02511 opened this issue Aug 17, 2019 · 19 comments
Open

instagram.exceptions.UnexpectedResponse #63

grafist02511 opened this issue Aug 17, 2019 · 19 comments

Comments

@grafist02511
Copy link

Get unexpected response from 'https://www.instagram.com/accounts/login/?next=/explore/locations/219892316/'
Отвалился парсинг фото по геолокации. Это вышла обнова у Инстаграм?

@OlegYurchik
Copy link
Owner

Да, наверное, в последнее время не слежу за этим

@r3dnck
Copy link

r3dnck commented Aug 27, 2019

If you're trying to access Instagram user profile:
Instagram has just changed the behavior of its web version interface. Now no one can view more than a few users' profiles without being authorized on their servers first. In other words, user profiles are no longer publicly available for servers like ours.
We're currently searching for ways to solve this problem. Sorry for the inconveniences.

RSS-Bridge/rss-bridge#1271

@kirill568
Copy link

У меня такая же ошибка, только я не могу авторизоваться. Может нашли решение?

@grafist02511
Copy link
Author

У меня такая же ошибка, только я не могу авторизоваться. Может нашли решение?

Авторизация мне не нужна

agent = WebAgent()
location = Location(1234567)
account = Account("zuck")
media1, pointer = agent.get_media(account)
media1, pointer = agent.get_media(location, pointer=pointer, count=15, delay=1)

С такими костылями у меня работает

@kirill568
Copy link

Нет, пишет KeyError: 'ProfilePage', я так понимаю, что он не может просматривать страницы.

@kirill568
Copy link

даже если установить proxy, всё равно появляется ошибка, очень странно

@grafist02511
Copy link
Author

Код из quickstart работает?

from instagram import Account, Media, WebAgent

agent = WebAgent()
account = Account("zuck")

media1, pointer = agent.get_media(account)
print (media1)

@kirill568
Copy link

Нет, в этом и прикол

@kirill568
Copy link

Сегодня с утра всё работало, вечером начал парсить аккаунты, и опять вылетела эта ошибка
instagram.exceptions.UnexpectedResponse: Get unexpected response from 'https://www.instagram.com/accounts/login/' Error: 'ProfilePage'
Не знаю что делать

@Lip4ik
Copy link

Lip4ik commented Nov 10, 2019

Проксю убери из-за нее не работает скачивание медиа

@kirill568
Copy link

kirill568 commented Nov 11, 2019

Проксю убери из-за нее не работает скачивание медиа

Если делать много запросов, то вылетает такая ошибка, её можно обойти с помощью vpn, прокси почему-то не решают эту проблему, хотя они 100% работают.
Ошибка выпадает даже если не использовать прокси.

@Lip4ik
Copy link

Lip4ik commented Nov 11, 2019

Проксю убери из-за нее не работает скачивание медиа

Если делать много запросов, то вылетает такая ошибка, её можно обойти с помощью vpn, прокси почему-то не решают эту проблему, хотя они 100% работают.
Ошибка выпадает даже если не использовать прокси.

Нет, фича в том что прокси её решает частично( в случае лайков и комментов) если вы при 429 будете менять проксю скачивание продолжится. Однако в media при подключении любой прокси вылетает ошибка ProfilePage not found (или что-то вроде того). А в случае с лайкамм и клиентами или 429( много запросов) или 403( не валидная прокся)

@Lip4ik
Copy link

Lip4ik commented Nov 11, 2019

А vpn не является альтернативой, так как если писать для своего устройства все окей, а если многопользовательское то все сломается. Или же ставить на всех впн и тд

@kirill568
Copy link

А vpn не является альтернативой, так как если писать для своего устройства все окей, а если многопользовательское то все сломается. Или же ставить на всех впн и тд

Есть тогда какое-нибудь решение? Мне нужно доставать информацию из bio большого количества аккаунтов.

@Lip4ik
Copy link

Lip4ik commented Nov 11, 2019

А vpn не является альтернативой, так как если писать для своего устройства все окей, а если многопользовательское то все сломается. Или же ставить на всех впн и тд

Есть тогда какое-нибудь решение? Мне нужно доставать информацию из bio большого количества аккаунтов.

Какой метод вы используете? get_media?

@kirill568
Copy link

А vpn не является альтернативой, так как если писать для своего устройства все окей, а если многопользовательское то все сломается. Или же ставить на всех впн и тд

Есть тогда какое-нибудь решение? Мне нужно доставать информацию из bio большого количества аккаунтов.

Какой метод вы используете? get_media?

account = Account(people)
agent.update(account)
biography = account.biography
name = account.full_name

@Lip4ik
Copy link

Lip4ik commented Nov 11, 2019

cnt_proxy = 0
settings = None
settings_list = [None]

def Change_proxy():
global cnt_proxy
global settings
global settings_list
if cnt_proxy == len(settings_list) - 1:
cnt_proxy = 0
else:
cnt_proxy += 1
settings = settings_list[cnt_proxy]
print("Change proxy to", cnt_proxy)

def Exception_handler(e):
global cnt_proxy
global settings
global settings_list
if "Cannot connect to proxy." in str(e.args[0]):
del settings_list[cnt_proxy]
print("Proxy is not working")
Change_proxy()
elif "with response code '429'" in str(e.args[0]):
print("Proxy overloaded")
Change_proxy()
else: # TODO://Media except ProfilePage
raise e

def take_proxy_list(proxy_file_name):
global settings_list
with open(proxy_file_name) as proxies:
for proxy in proxies:
elem = {"proxies": {re.search(r".*://", proxy).group(0)[:-3]: proxy.rstrip()}}
settings_list.append(elem)
account = Account(people)
agent.update(account, settings=settings)
biography = account.biography
name = account.full_name

@kirill568
Copy link

kirill568 commented Nov 12, 2019

cnt_proxy = 0
settings = None
settings_list = [None]

def Change_proxy():
global cnt_proxy
global settings
global settings_list
if cnt_proxy == len(settings_list) - 1:
cnt_proxy = 0
else:
cnt_proxy += 1
settings = settings_list[cnt_proxy]
print("Change proxy to", cnt_proxy)

def Exception_handler(e):
global cnt_proxy
global settings
global settings_list
if "Cannot connect to proxy." in str(e.args[0]):
del settings_list[cnt_proxy]
print("Proxy is not working")
Change_proxy()
elif "with response code '429'" in str(e.args[0]):
print("Proxy overloaded")
Change_proxy()
else: # TODO://Media except ProfilePage
raise e

def take_proxy_list(proxy_file_name):
global settings_list
with open(proxy_file_name) as proxies:
for proxy in proxies:
elem = {"proxies": {re.search(r".*://", proxy).group(0)[:-3]: proxy.rstrip()}}
settings_list.append(elem)
account = Account(people)
agent.update(account, settings=settings)
biography = account.biography
name = account.full_name

Не пойму зачем всё это нужно, когда можно просто указать прокси и их использовать, вот так.

settings = {
    "proxies": {
		"http": "50.235.28.146:3128",
		"http": "23.97.101.222:80",
		"http": "200.89.178.73:8080",
		"http": "195.171.27.244:3128",
		"http": "109.226.233.31:3128",
		"http": "176.105.100.62:3128",
		"http": "165.22.44.147:80",
		"http": "167.71.59.12:8080",
		"http": "187.110.16.2:3128",
		"http": "144.217.74.219:3128",
		"http": "119.81.71.27:8123",
		"http": "103.35.64.12:3128",
		"http": "157.245.209.92:80",
		"http": "95.168.185.183:8080",
		"http": "173.192.21.89:25"
    },
}
agent.update(account, settings=settings)
biography = account.biography
name = account.full_name

@SanzharMrz
Copy link

cnt_proxy = 0
settings = None
settings_list = [None]
def Change_proxy():
global cnt_proxy
global settings
global settings_list
if cnt_proxy == len(settings_list) - 1:
cnt_proxy = 0
else:
cnt_proxy += 1
settings = settings_list[cnt_proxy]
print("Change proxy to", cnt_proxy)
def Exception_handler(e):
global cnt_proxy
global settings
global settings_list
if "Cannot connect to proxy." in str(e.args[0]):
del settings_list[cnt_proxy]
print("Proxy is not working")
Change_proxy()
elif "with response code '429'" in str(e.args[0]):
print("Proxy overloaded")
Change_proxy()
else: # TODO://Media except ProfilePage
raise e
def take_proxy_list(proxy_file_name):
global settings_list
with open(proxy_file_name) as proxies:
for proxy in proxies:
elem = {"proxies": {re.search(r".*://", proxy).group(0)[:-3]: proxy.rstrip()}}
settings_list.append(elem)
account = Account(people)
agent.update(account, settings=settings)
biography = account.biography
name = account.full_name

Не пойму зачем всё это нужно, когда можно просто указать прокси и их использовать, вот так.

settings = {
    "proxies": {
		"http": "50.235.28.146:3128",
		"http": "23.97.101.222:80",
		"http": "200.89.178.73:8080",
		"http": "195.171.27.244:3128",
		"http": "109.226.233.31:3128",
		"http": "176.105.100.62:3128",
		"http": "165.22.44.147:80",
		"http": "167.71.59.12:8080",
		"http": "187.110.16.2:3128",
		"http": "144.217.74.219:3128",
		"http": "119.81.71.27:8123",
		"http": "103.35.64.12:3128",
		"http": "157.245.209.92:80",
		"http": "95.168.185.183:8080",
		"http": "173.192.21.89:25"
    },
}
agent.update(account, settings=settings)
biography = account.biography
name = account.full_name

так у Вас в словаре proxies, на все значения один ключ - "http"

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants