簡體   English   中英

使用 Instagrapi 使用代理登錄

[英]Login with proxy using Instagrapi

我編寫了一些使用 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:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\adapters.py", line 456, in send
    conn = self.get_connection(request.url, proxies)
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\adapters.py", line 345, in get_connection
    proxy = prepend_scheme_if_needed(proxy, "http")
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\utils.py", line 988, in prepend_scheme_if_needed
    parsed = parse_url(url)
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\urllib3\util\url.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:\Users\NAME\Desktop\learning\app.py", line 41, in <module>
    cl.login('USERNAME', 'PASSWORD', verification_code=code)
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\instagrapi\mixins\auth.py", line 371, in login
    self.pre_login_flow()
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\instagrapi\mixins\auth.py", line 47, 
in pre_login_flow
    self.set_contact_point_prefill("prefill")
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\instagrapi\mixins\auth.py", line 147, in set_contact_point_prefill
    return self.private_request("accounts/contact_point_prefill/", data, login=True)
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\instagrapi\mixins\private.py", line 451, in private_request
    raise e
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\instagrapi\mixins\private.py", line 438, in private_request
    self._send_private_request(endpoint, **kwargs)
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\instagrapi\mixins\private.py", line 288, in _send_private_request
    response = self.private.post(
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\sessions.py", line 635, in post
    return self.request("POST", url, data=data, json=json, **kwargs)
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\NAME\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\requests\adapters.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 function 的源代碼:

    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

如您所見,您的私有代理模式字符串似乎有問題。 檢查您的代理字符串,它應該與: How to make python Requests work via SOCKS proxy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM