循环遍历代理列表

时间:2018-03-14 14:45:58

标签: python python-2.7

我目前正在开发一个循环功能列表的函数,然后一旦到达底部就重新开始。到目前为止,这是我的代码:

import time

createLimit = 100
proxyFile = 'proxies.txt'


def getProxies():
  proxyList = []
  with open(proxyFile, 'r') as f:
    for line in f:
      proxyList.append(line)

  return proxyList


proxyList = getProxies()


def loopProxySwitch():
  print("running")
  current_run = 0
  while current_run <= createLimit:
    if current_run >= len(proxyList):
      lengthOfList = len(proxyList)
      useProxy = proxyList[current_run%lengthOfList]
      print("Current Ip: "+useProxy)
      print("Current Run: "+current_run)
      print("Using modulus")
      return useProxy
    else:
      useProxy = proxyList[current_run]
      print("Current Ip: "+useProxy)
      print("Current Run: "+current_run)
      return useProxy
    time.sleep(2)
  print("Script ran")

loopProxySwitch()

我遇到的问题是loopProxySwitch函数不会在while循环中返回或打印任何内容,但我不知道它是如何错误的。以下是带有伪代理的文本文件的格式:

111.111.111.111:2222
333.333.333.333:4444
444.444.444.444:5555
777.777.777.777:8888
919.919.919.919:0000

有关这种情况的任何建议吗?我打算将它合并到我正在处理的程序中,但不是在定时间隔内循环遍历文件,它只会循环某个返回条件(例如让循环函数知道某些函数具有的另一个函数)跑了,是时候切换到下一个代理了。如果这有点令人困惑,我将很乐意详细阐述并澄清任何困惑。任何建议,想法或修复都表示赞赏。谢谢!

编辑:感谢下面的评论,我修复了打印问题。但是,该函数不会遍历所有代理...任何建议?

1 个答案:

答案 0 :(得分:0)

由于您在打印前返回了某些内容,因此不打印任何内容。 循环将在第一次满足条件时中断,因为它将返回一个值并退出函数而不会到达print语句(函数)和/或下一次迭代。

顺便说一句,如果你真的想要打印返回的值,你可以打印函数本身:

print(loopProxySwitch())