2015-12-18 2 views
1

Я пытаюсь разложить куки в существующем маринованном списке, но я все время получаю сообщение об ошибке.Как я могу сортировать файлы cookie в существующий список?

twitter_loggins = [] 
pickle_path = "/home/ro/A_Python_Scripts/twitter/twitter2/twitter_loggins.pkl" 
driver = webdriver.Firefox() 
driver.get("https://twitter.com") 
cookies = [] 

email = raw_input("Email used?") 
cookies1 = driver.get_cookies 
cookie = [email, cookies1] 
cookies.append(cookie) 

if os.path.exists(pickle_path): 
    with open(pickle_path, 'rb') as loggins: 
     cookies1 = pickle.load(loggins) 
     for cookie in cookies1: 
      cookies.append(cookie) 

with open(pickle_path, 'wb') as file1: 
    pickle.dump(cookies, file1) 

Мой рабочий код, который рассолляет куки.

driver = webdriver.Firefox() 
driver.get("https://twitter.com") 
continu = raw_input("Press Enter when you've logged in") 
pickle.dump(driver.get_cookies() , open("/home/ro/A_Python_Scripts/twitter/twitter_loggins.pkl", "wb")) 

Я получаю следующую ошибку трассировки.

Traceback (most recent call last): 
    File "save_cookies.py", line 40, in <module> 
    cookies1 = pickle.load(loggins) 
    File "/usr/lib/python2.7/pickle.py", line 1378, in load 
    return Unpickler(file).load() 
    File "/usr/lib/python2.7/pickle.py", line 858, in load 
    dispatch[key](self) 
    File "/usr/lib/python2.7/pickle.py", line 880, in load_eof 
    raise EOFError 
EOFError 

Так мне нужно маринованные файл, чтобы посмотреть, как это [[ 'EMAIL1', 'cookie1', 'Cookie2'], [ 'EMAIL2', 'cookie1', 'Cookie2']]

ответ

0

У вас есть ошибка в первом скрипте по адресу cookies1 = driver.get_cookies, где вы просто ссылаетесь на этот метод, но не называете его (оно должно быть cookies1 = driver.get_cookies()). Вы открываете файл "wb", который обрезает файл, но поскольку объект функции не выбирается, возникает исключение, и у вас есть пустой файл. В будущих итерациях pickle.load терпит неудачу, потому что файл пуст.

Смежные вопросы