使用instagram使用代理登录



我编写了一些代码,使用2fa和代理登录,然后获取一些信息并返回它。它还没有完成,但是登录部分将无法工作。这里是代码,如果有人能告诉我什么是错的,我会非常感激。作为旁注,我正在使用socks5 ipv6代理,不确定它是否必须是ipv4,但我找不到答案。显然,我已经从代码中删除了我的凭据,但它们被放在指示的地方。

下面是我的代码:
from instagrapi import Client
import uuid
client_session_id = str(uuid.uuid4())
settings = {
"uuids": {
"phone_id": "be60e0a9-7201-5492-da04-4f2b85b3b592",
"uuid": "be60e0a9-7201-5492-da04-4f2b85b3b592",
"client_session_id": client_session_id,
"advertising_id": "1c413050-795d-f321-eeb4-4962ca0a731c",
"device_id": "android-f4f80570fe070b5f"
},
"cookies":  {}, 
"last_login": 1674240519.7862692,
"device_settings": {
"cpu": "h1",
"dpi": "640dpi",
"model": "C6503",
"device": "C6503",
"resolution": "1794x1080",
"app_version": "117.0.0.28.123",
"manufacturer": "Sony",
"version_code": "164321834",
"android_release": "4.2.2",
"android_version": 23
},
"user_agent": "Opera/9.80 (Android 4.2.2; Linux; Opera Mobi/ADR-1210241554; U; en-us) Presto/2.11.355 Version/12.10"
}

cl = Client(settings)
proxy = "socks5://username:password@127.0.0.1:30235"
cl.set_proxy(proxy)
seed = 'PUT SEED HERE'
code = cl.totp_generate_code(seed)
cl.login('USERNAME', 'PASSWORD', verification_code=code)
user_id = cl.user_id_from_username("instagram")
followers = cl.user_followers(user_id, 0)
print(followers)
cl.logout()

当我运行它时,我得到这个错误:

Traceback (most recent call last):
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesrequestsadapters.py", line 456, in send
conn = self.get_connection(request.url, proxies)
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesrequestsadapters.py", line 345, in get_connection
proxy = prepend_scheme_if_needed(proxy, "http")
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesrequestsutils.py", line 988, in prepend_scheme_if_needed
parsed = parse_url(url)
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesurllib3utilurl.py", line 397, in parse_url
return six.raise_from(LocationParseError(source_url), None)
File "<string>", line 3, in raise_from
urllib3.exceptions.LocationParseError: Failed to parse: socks5://socks5://username:password@127.0.0.1:30235
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:UsersNAMEDesktoplearningapp.py", line 41, in <module>
cl.login('USERNAME', 'PASSWORD', verification_code=code)
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesinstagrapimixinsauth.py", line 371, in login
self.pre_login_flow()
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesinstagrapimixinsauth.py", line 47, 
in pre_login_flow
self.set_contact_point_prefill("prefill")
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesinstagrapimixinsauth.py", line 147, in set_contact_point_prefill
return self.private_request("accounts/contact_point_prefill/", data, login=True)
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesinstagrapimixinsprivate.py", line 451, in private_request
raise e
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesinstagrapimixinsprivate.py", line 438, in private_request
self._send_private_request(endpoint, **kwargs)
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesinstagrapimixinsprivate.py", line 288, in _send_private_request
response = self.private.post(
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesrequestssessions.py", line 635, in post
return self.request("POST", url, data=data, json=json, **kwargs)
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesrequestssessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesrequestssessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "C:UsersNAMEAppDataLocalPackagesPythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0LocalCachelocal-packagesPython39site-packagesrequestsadapters.py", line 458, in send
raise InvalidURL(e, request=request)
requests.exceptions.InvalidURL: Failed to parse: socks5://username:password@127.0.0.1:30235

set_proxy函数的源代码:

def set_proxy(self, dsn: str):
if dsn:
assert isinstance(
dsn, str
), f'Proxy must been string (URL), but now "{dsn}" ({type(dsn)})'
self.proxy = dsn
proxy_href = "{scheme}{href}".format(
scheme="http://" if not urlparse(self.proxy).scheme else "",
href=self.proxy,
)
self.public.proxies = self.private.proxies = {
"http": proxy_href,
"https": proxy_href,
}
return True
self.public.proxies = self.private.proxies = {}
return False
如您所见,您的私有代理模式字符串似乎有问题。检查你的代理字符串,它应该与:如何使python请求工作通过SOCKS代理

最新更新