【问题标题】:The job is not reading Ip from proxy broker该工作未从代理代理读取 IP
【发布时间】:2017-11-17 01:56:00
【问题描述】:

我正在尝试使用 Python 将代理从代理代理导入 Selenium。

这往往会奏效;但是似乎我每次使用时都必须手动输入代理:

PROXY = " proxies" # IP:PORT or HOST:PORT 

它往往会产生问题并且无法正确加载。

打印出来:

Found proxy: <Proxy CI 0.79s [HTTPS] 213.136.105.62:80>

我找不到任何文档来规避这个问题。我已经使用正则表达式来尝试规避这个问题,但似乎无论如何都会发生同样的问题。

浏览器通常会启动,但随后无法导航到任何地方,因为代理似乎没有正确加载。

mport asyncio
from proxybroker import Broker

async def show(proxies):
    while True:
        proxy = await proxies.get()
        if proxy is None: break
        print('Found proxy: %s' % proxy)

proxies = asyncio.Queue()
broker = Broker(proxies)
tasks = asyncio.gather(
    broker.find(types=['HTTPS', 'HTTPS'], limit=1),
    show(proxies))

loop = asyncio.get_event_loop()
loop.run_until_complete(tasks)
#185.106.121.97:1080>
#185.82.203.188:1080

#185.106.121.97

#Output: Found proxy: <Proxy CI 0.79s [HTTPS] 213.136.105.62:80>
#\d[1].*:*\d


PROXY = " proxies" # IP:PORT or HOST:PORT
#PROXY = " 35.187.234.217:80" # IP:PORT or HOST:PORT

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % PROXY)

chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get("http://whatismyipaddress.com")



The regex is: \d[1].*:*\d

尝试使用Regex 解决方法

【问题讨论】:

    标签: python regex python-3.x selenium proxy


    【解决方案1】:

    我发现,您可以使用 tasks.result()[1].hosttasks.result()[1].portProxy 类获取 IP 和端口。

    希望对某人有所帮助。

    【讨论】:

      【解决方案2】:

      改变这个:

      print('Found proxy: %s' % proxy)
      

      到这里:

      return str(proxy.host) + ":" + str(proxy.port)
      

      创建ProxyBroker 函数并在webdrive 之前调用它,如下所示:

      def get_proxy(countries):
          import asyncio
          from proxybroker import Broker
      
          async def show(proxies):
              while True:
                  proxy = await proxies.get()
                  if proxy is None: break
                  return str(proxy.host) + ":" + str(proxy.port)
      
          proxies = asyncio.Queue()
          broker = Broker(proxies)
          tasks = asyncio.gather(
              broker.find(types=['HTTPS'], countries=[countries], limit=1),
              show(proxies))
      
          loop = asyncio.get_event_loop()
          loop.run_until_complete(tasks)
      

      代码会变成这样:

      def get_proxy(countries):
          import asyncio
          from proxybroker import Broker
      
          async def show(proxies):
              while True:
                  proxy = await proxies.get()
                  if proxy is None: break
                  return str(proxy.host) + ":" + str(proxy.port)
      
          proxies = asyncio.Queue()
          broker = Broker(proxies)
          tasks = asyncio.gather(
              broker.find(types=['HTTPS'], countries=[countries], limit=1),
              show(proxies))
      
          loop = asyncio.get_event_loop()
          loop.run_until_complete(tasks)
      
      PROXY = get_proxy('US')" proxies" # IP:PORT or HOST:PORT
      #PROXY = " 35.187.234.217:80" # IP:PORT or HOST:PORT
      
      chrome_options = webdriver.ChromeOptions()
      chrome_options.add_argument('--proxy-server=%s' % PROXY)
      
      chrome = webdriver.Chrome(chrome_options=chrome_options)
      chrome.get("http://whatismyipaddress.com")
      

      【讨论】:

        猜你喜欢
        • 2023-04-10
        • 1970-01-01
        • 2018-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多