Синтаксический анализ и использование прокси-серверов с aiohttp внутри аргумента get

#python #asynchronous #proxy #python-requests #aiohttp

#python #асинхронный #прокси #python-запросы #aiohttp

Вопрос:

Я использую aiohttps для отправки запроса get. Раньше я использовал стандартный модуль запросов, но после перехода на aiohttps я начал получать ошибки прокси.

Вот моя конфигурация прокси-сервера:

  with open('proxies.txt', 'r') as f:
      lines = f.read().split("n")
      split_proxies = [line.split(":") for line in lines]
      proxies = [{'http:':f"http://{p[2]}:{p[3]}@{p[0]}:{p[1]}",'https:':f"https://{p[2]}:{p[3]}@{p[0]}:{p[1]}"} for p in split_proxies]
      print(split_proxies)
 

И вот мой код:

 async def Requests_loop():
  async with aiohttp.ClientSession() as s:
    async with s.get(url, headers=headers, proxy=random.choice(proxies)) as r:
 

При использовании аргумента proxies это выдало бы мне неожиданную ошибку аргумента, и как только я прочитал документацию, в ней говорилось использовать прокси вместо этого. Однако я получаю эту ошибку:

    async with s.get(url, headers=headers, proxy=random.choice(proxies)) as r:
  File "C:UsersroyceAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38site-packagesaiohttpclient.py", line 1012, in __aenter__
    self._resp = await self._coro
  File "C:UsersroyceAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38site-packagesaiohttpclient.py", line 391, in _request
    proxy = URL(proxy)
  File "C:UsersroyceAppDataLocalPackagesPythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0LocalCachelocal-packagesPython38site-packagesyarl_url.py", line 152, in __new__
    raise TypeError("Constructor parameter should be str")
TypeError: Constructor parameter should be str
 

Комментарии:

1. Попробуйте выполнить печать url .

2. url хороший, он работал нормально, когда я просто использовал обычные запросы и те же прокси

3. С принтами random.choice(proxies) . Это должна быть строка.

4. после превращения его в строку он сказал, что принимаются только http-прокси, но после изменения он по-прежнему говорит, что поддерживаются только http-прокси. Вот пример того, что печатается, если я печатаю прокси rp_user_1321:Nqn8VLlsdXDeyojd_country-UnitedKingdom_session-RPa …