Я пытаюсь скачать файл по ссылке, проанализировать файл, а затем сохранить определенные данные в моей базе данных heroku.Я успешно настроил свой веб-драйвер Selen Chrome и могу войти в систему. Обычно, когда я получаю URL-адрес, загрузка начинается автоматически.Я создал новый каталог для файла, который будет сохранен на heroku.Это, кажется, не здесь или нигде.
Я пробовал разные способы установки каталога загрузки, другие способы входа на сайт и функционально делал это локально, но не в производстве героку.
# importing libraries
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import datetime
from datetime import timedelta
import os
import json
import csv
# temporary credentials to later be stored
# as env vars
user = "user"
psw = "pasw"
account = 'account'
# this is the directory to download the file
file_directory = os.path.abspath('files')
# making this directory the default chrome web driver directory
options = webdriver.ChromeOptions()
prefs = {
"download.default_directory": file_directory
}
options.add_experimental_option('prefs',prefs)
# setting up web driver
driver = webdriver.Chrome(chrome_options=options)
# logging in to pinterest
url_login = 'https://www.pinterest.com/login/?referrer=home_page'
driver.get(url_login)
username = driver.find_element_by_id("email")
username.send_keys(user)
password = driver.find_element_by_id("password")
password.send_keys(psw)
driver.find_element_by_id("password").send_keys(Keys.ENTER)
# sleep 20 sec so page loads fully
time.sleep(20)
# collect metrics for yesterday
yesterday = datetime.date.today() - datetime.timedelta(days=1)
yesterday = str(yesterday)
# download link for metrics
url = "https://analytics.pinterest.com/analytics/profile/" + account + "/export/?application=all&tab=impressions&end_date=" + yesterday + '&start_date=' + yesterday
driver.get(url)
# setting up file identification for pinterest CSV file
date = datetime.date.today() - datetime.timedelta(days=2)
date = str(date)[:10]
file_location = os.path.join(file_directory,'profile-'+account+'-impressions-all-'+date+'.csv')
# opening up file
test_list = []
with open(file_location,newline = '', encoding = 'utf-8') as f:
reader = csv.reader(f)
for row in reader:
test_list.append(row)
# gathering relevant metrics for yesterday
this_list = test_list[1:3]
# re-organizing metrics
this_dict = {}
i=0
while(i<len(this_list[0])):
this_dict[this_list[0][i]] = this_list[1][i]
i+=1
return(this_dict)
driver.close()
Я ожидаючто get ("https://analytics.pinterest.com/analytics/profile/" + account +" / export /? application = all & tab = impression & end_date = "+чера + '& start_date =' + вчера) загрузит CSV в каталог, который я указал. Это неЯ использовал heroku run bash и искал, чтобы попытаться найти его, но он не работает.
UPDATE Мне НЕ нужно постоянно хранить файл. Мне нужно сохранить еговременно и анализирую его. Я понимаю, что при перезапуске dyno все будет потеряно.
** ОБНОВЛЕНИЕ ** Я сделал это другим способом. Я передал файлы cookie и заголовок сеансу запросов. IЯ использовал User-Agent браузера Chrome в Linux. Затем я присвоил файл переменной (csv_file = s.get (url)). Я разбил строки на массив. Затем я использовал пустую строку иМетод .join () для добавления каждой строки в одну массивную строку.Затем я проанализировал строку по идентификаторам, которые обычно разделяют строки в csv.У меня сейчас есть соответствующие метрики.