Интеграция SeleniumBase в Django

Недавно я наткнулся на способ сделать selenium быстрее, используя SeleniumBase. Я работаю над сайтом, который должен анализировать страницу покупок google. Он использует selenium для пробуждения страницы, потому что на странице есть javascript, и он использует BeautifulSoup для разбора содержимого страницы... и это медленно. Я уже несколько дней пытаюсь интегрировать Django и SeleniumBase, но безуспешно. Представления Django в сочетании со структурой классов Selenium Base ограничивают мои познания в сыром питоне. У меня есть функция в нижней части моего кода, которая анализирует содержимое страницы, включающее SeleniumBase и BeautifulSoup, а также вызов функции и forloop в верхней части для перебора содержимого. Я получил несколько сообщений об ошибках, и я все еще думаю, что я далек от решения, поэтому я не чувствую необходимости публиковать их здесь, потому что ни одно из них не кажется слишком значительным. Любая помощь будет высоко оценена.

P.S. Я немного новичок в django и python и действительно новичок в Selenium и SeleniumBase

def home(request):
    form = SearchForm(request.POST or None)
    if form.is_valid():
        form.save()

    if request.POST:
        for google_post in google_initiate(request, self):
            #Do some stuff
            #Make a list
            #Append stuff to list

Вызов функции в верхней части кода

def google_initiate(request, self):
    self.open(
        "https://www.google.com/"
        "search?q=desk&source=lmns&tbm=shop&bih=1043&biw=1866&hl=en&sa="
        "X&ved=2ahUKEwjxh5DYj9T5AhVEsHIEHfpsA_0Q_AUoAXoECAEQAQ")
    soup = self.get_beautiful_soup()
    parsed = soup.find_all(
        'div', {'class': ['sh-dgr__gr-auto', 'sh-dgr__grid-result']}
    )
    print(parsed)
    return parsed

Ниже представлена структура рабочего класса SeleniumBase...

class MyTestClass(BaseCase):
    def test_parse_shopping(self):
        self.open(
            "https://www.google.com/"
            "search?q=desk&source=lmns&tbm=shop&bih=1043&biw=1866&hl=en&sa="
            "X&ved=2ahUKEwjxh5DYj9T5AhVEsHIEHfpsA_0Q_AUoAXoECAEQAQ")
        soup = self.get_beautiful_soup()
        parsed = soup.find_all(
            'div', {'class': ['sh-dgr__gr-auto', 'sh-dgr__grid-result']}
        )
        print(len(parsed))

Думаю, это просто вопрос интеграции этого в мою функцию и, самое главное, возможность правильно вызвать ее.

Вернуться на верх