2017-07-08 24 views
0

リクエストモジュールを使用してWebパーサースクリプトを作成しようとしています。ここに私の現在のコードは次のとおりです。No module module error

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/CHANNEL_NAME", "-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:\Users\flamelier\Desktop\Twitch.py", line 1, in <module> 
    import requests 
ImportError: No module named 'requests' 

は、なぜ私はこのエラーを取得していますか?このモジュールをインストールするにはどうすればいいですか? このエラーは今後すべてのスクリプトで繰り返されますか? 今後このような類似のエラーを防ぐ方法を教えてください。

+1

'requests'をインストールしましたか?デフォルトのPythonインストールには付属していません。 – kichik

+0

'pip3 install requests' –

+0

何をしているのか分からない限り、書かなかったコードを実行しないでください。 –

答えて

1

リクエストは第三者のモジュールです。まず、PIPまたはeasy_installを使用してPythonにインストールする必要があります。

0

requestsとして実行する必要があります。これはサードパーティのライブラリであるため、デフォルトではPythonに付属していません。

0

pip3がインストールされている場合でも、表示されたコードは何も行いません。

if __name__ == "__main__" 

テストし、それがview機能で他のブロックの一部である後にすべてのもの。この行とその後に続くブロックを、左余白に戻します。