использование списка из функции в контексте в django сельдерее - PullRequest
0 голосов
/ 14 июля 2020

У меня есть сценарий (scrapt.py), который я часто использую с сельдереем. сценарий содержит список, в котором хранится то, что я очищаю. как использовать этот список в контексте? tasks.py

import time
from celery import shared_task, task
from .scrapt import scrape

@task
def scrape_dev_to():
    
    scrape()
    return

этот scrapt.py содержит функцию

import os
os.chmod('./chromedriver', 0o755)
import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

def scrape():

    opt = Options()
    
    opt.add_argument("--remote-debugging-port=9222")
    opt.add_argument("--no-sandbox")
    
    opt.add_argument("--disable-dev-shm-usage")
    driver = webdriver.Chrome(options=opt, 
    executable_path='./chromedriver')
    driver.get('https://www.ig.com/en/forex/markets-forex')


    timeout = 10

    try:
        WebDriverWait(driver, timeout).until(
            EC.visibility_of_element_located(
                (By.XPATH,
                "//div[@class='dynamic-table__cell']")
            )
        )
    except TimeoutException:
        print("Struggling to get the page....Have faith in this buggy script!")
        
    data = []

    while not data:
        for elm in driver.find_elements(By.CSS_SELECTOR, "span[data-field=V2-F-BID]"):
            if elm.text and elm.text != '-': # Maybe check on contains digit
                data.append(elm.text)
        time.sleep(7)

        
    tet =[]
    while not tet:
        for em in driver.find_elements(By.CSS_SELECTOR, "span[data-field=OFR]"):
            if em.text and em.text != '-': # Maybe check on contains digit
                tet.append(em.text)
        time.sleep(7)
    print(data)
    return data
    

Это функция просмотра, моя попытка заключалась в том, чтобы импортировать функцию очистки, и по странной причине я почувствовал я мог бы использовать список данных в контексте. Я даже попытался добавить в него функцию, но получил ошибку позиционного аргумента. Я все запутал. я просто хочу постоянно отображать новые данные или список тетрадей в моем шаблоне.

def pricelist(request):
    from .scrapt import scrape
    
    scrape()


           
    context = {
        "price": 123,
        "mydata": data
    }

    return render(request, 'pricelis.html', context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...