2017-05-18 22 views
0

私はちょうどPythonをプログラミングし始めました。私はボットを作りたい。これは私のコードです。 while RUNNING == True:まではすべて正常に動作します。その後、プロファイルを入力し、エラーを表示します。私はFirefoxで動作するように追加情報を得ました。私はgeckodriverをダウンロードする必要がありました!どのような助けや示唆があればどこに見ていただければ幸いですか?Python: 'bytes'型のオブジェクトはJSONのシリアライズ可能ではありません

import random, time, requests 
from selenium import webdriver 
from selenium.webdriver.common.proxy import * 
from bs4 import BeautifulSoup 
import selenium.webdriver.chrome.service 
import webbrowser 

USER_AGENT_FILE = './user_agent.txt' 
RUNNING = True 

def LoadUserAgents(uafile=USER_AGENT_FILE): 
    uas = [] 
    with open(uafile, 'rb') as uaf: 
     for ua in uaf.readlines(): 
      if ua: 
       uas.append(ua.strip() [1:-1-1]) 
    random.shuffle(uas) 
    return uas 

uas = LoadUserAgents() 

while RUNNING == True: 
    profile = webdriver.FirefoxProfile() 
    profile.set_preference('general.usragent.override', random.choice(uas)) 
    driver = webdriver.Firefox(firefox_profile=profile) 
    driver.get('http://whatmyua.com') 
    input('Press enter to continue') 
    driver.quit() 
+0

それがどのようなエラーが表示さん:

while RUNNING == True:

は同じですか? –

+1

バイナリモードでファイルを開きます。テキストモードが必要です。 'open(uafile、 'r')'である。 – chepner

+0

ありがとうございます、私はそれが動作するかどうかを試してみます。 –

答えて

1

ファイルをバイナリモードで開きます。テキストモードが必要なので、open(uafile, 'r')を使用してください。また

、迷惑コードレビューのビット:

while RUNNING:

+0

お返事ありがとうございます。私は夜にそれをテストし、あなたに戻ってくるでしょう:) –

+0

ありがとうMEN!それはうまくいく! –