Skip to main content
 首页 » 编程设计

Python请求包脚本错误

2025年05月04日7shihaiming

我在运行这个脚本时遇到错误 另外我应该提到我刚开始学习 Python

import requests 
import subprocess 
import json 
import sys 
import threading 
import time 
from Queue import Queue 
 
numberOfViewers = int(sys.argv[1]) 
builderThreads = int(sys.argv[2]) 
startTime = time.time() 
numberOfSockets = 0 
concurrent = 25 
urls = [] 
urlsUsed = [] 
 
def getURL(): # Get tokens 
    output = subprocess.Popen(["livestreamer", "twitch.tv/ispazzcraft", "-j"], stdout=subprocess.PIPE).communicate()[0] 
    return json.loads(output)['streams']['worst']['url'] # Parse json and return the URL parameter 
 
def build(): # Builds a set of tokens, aka viewers 
    global numberOfSockets 
    global numberOfViewers 
    while True: 
        if numberOfSockets < numberOfViewers: 
            numberOfSockets += 1 
            print "Building viewers " + str(numberOfSockets) + "/" + str(numberOfViewers) 
            urls.append(getURL()) 
 
def view(): # Opens connections to send views 
    global numberOfSockets 
    while True: 
        url=q.get() 
        requests.head(url) 
        if (url in urlsUsed): 
            urls.remove(url) 
            urlsUsed.remove(url) 
            numberOfSockets -= 1 
        else: 
            urlsUsed.append(url) 
        q.task_done() 
 
if __name__ == '__main__': 
    for i in range(0, builderThreads): 
        threading.Thread(target = build).start() 
 
    while True: 
        while (numberOfViewers != numberOfSockets): # Wait until sockets are built 
            time.sleep(1) 
 
        q=Queue(concurrent*2) 
        for i in range(concurrent): 
            try: 
                t=threading.Thread(target=view) 
                t.daemon=True 
                t.start() 
            except: 
                print 'thread error' 
        try: 
            for url in urls: 
                print url 
                q.put(url.strip()) 
                q.join() 
        except KeyboardInterrupt: 
            sys.exit(1) 

这里是错误

Traceback (most recent call last): 
  File "C:\Python27\Scripts\test.py", line 9, in <module> 
    numberOfViewers = int(sys.argv[1]) 
IndexError: list index out of range 

其他人说他们通过安装 requests 包修复了它,我也这样做了,但我仍然收到这个错误 我也看了,我确实有最新版本的请求包

请您参考如下方法:

你应该提供 2 个命令行参数(数字)来使用这个脚本:

numberOfViewers = int(sys.argv[1]) 
builderThreads = int(sys.argv[2]) 

例如,如果脚本的名称是 test.py:

test.py 1 2