Page not found / UnboundLocalError at /parser/parsse/ при запуске парса

Всем привет! Делаю парсер поисковой выдачи, который выводит позицию сайта в выдаче по введенному запросу. Но сам парсер не рабоатет. На выбор Yandеx он выдает UnboundLocalError at /parser/parsse/, а на Google Page not found.

Код парсера взял со своего прошлого проекта, который работал год назад и в нем я ничего не менял. Сделал 1 в 1 как было там, но ничего не работает, причем даже в старом проекте такие же ошибки.

Форма парсера в шаблоне:

 <form id="PS" method="POST" action="{% url 'ParseApp:parsse' %}"> {% csrf_token %}
            {{search}}
            <div id="left_p">
                <ul>
                    <li>
                        <b>[Адрес сайта]</b>
                    </li>
                    <li>
                        <input type="text" id="LinkSite" name="LinkSite">
                    </li>
                    <li>
                        <b>[Запрос]</b>
                    </li>
                    <li>
                        <input type="text" id="Req" name="Req">
                    </li>
                </ul>
            </div>

            <div id="right_p">
                <b> [Поисковая система] </b>
                {% for ss in s %}
                <div class="form_radio_btn">
                    <input type="radio" value={{ss.id}} name="Search" id="radio-{{ss.id}}" >
                    <label for="radio-{{ss.id}}">{{ss.name}}</label>
                </div>
                {% endfor %}
                
            </div>
            <button type="submit" name="ParseButton"> Парсинг </button>
        </form>

Views.py:

def parsse(request):
site = request.POST['LinkSite']
req = request.POST['Req']
search = request.POST['Search']
s = Search_system.objects.get(id = search)
a = Parse.objects.all() 

if search == '2':
    r = requests.get('https://www.google.ru/search?q=%s&ie=UTF-8' % req) 
    soup = BeautifulSoup(r.text, "html.parser")
    try:
        blocks = soup.find_all('div', class_= re.compile(r'^\w\w\w\w\w\w \w\w\w \w\w\w\w\w\w \w\w\w\w\w$')) 
        for i in range(len(blocks)-1): 
            url = blocks[i].div.a['href'] 
            if site in url: 
                pos = i + 1       
            else:
                pos = 0 
             
    except:
        raise Http404("Ошибка поиска") 
    
    b = Parse(adress_site = site, req=req, id_SS = s, position = pos, date = timezone.now(), user = request.user)
    b.save() 

elif search == '1':
    r = requests.get('https://yandex.ru/search/?text=%s' % req ) 
    soup = BeautifulSoup(r.text, 'html.parser')
    try:
        links = soup.find_all('a', class_=re.compile('link_cropped_no i-bem'))
        for i in range(len(links)):
            url = links[i]['href']
            if site in url:
                pos = i + 1
            else:
                pos = 0 
            
    except:
        raise Http404("Ошибка поиска") 

    b = Parse(adress_site = site, req=req, id_SS = s, position = pos, date = timezone.now(), user = request.user)
    b.save()


history = Parse.objects.all().order_by('-date')
paginator = Paginator(history, 7)

page = request.GET.get('page')
try:
    hist = paginator.page(page)
except PageNotAnInteger:
    hist = paginator.page(1)
except EmptyPage:
    hist = paginator.page(paginator.num_pages)
s =Search_system.objects.all()

return render(request, 'ParseApp/parser.html', {"hist": hist,'s':s})

Urls.py приложения:

app_name = 'ParseApp'

urlpatterns = [
path('', views.index0, name='index0'),
path('viewing/', views.viewing, name='viewing'),
path('prof/', views.prof, name='prof'),
path('prof/change/', views.prof_change, name='prof_change'),
path('prof/<str:user_id>/', views.profuser, name='profuser'),
path('parser/', views.parser, name='parser'),
path('parser/fltr_date/', views.fltr_date, name='fltr_date'),
path('parser/fltr_adress/', views.fltr_adress, name='fltr_adress'),
path('parse/<int:parse_id>/', views.parse, name='parse'),
path('parse/del/<int:parse_id>', views.del_p, name='del_p'),
path('parse/<int:parse_id>/leave_comment/', views.leave_comment, name='leave_comment'),
path('parser/parsse/', views.parsse, name='parsse'),

]


Ответы (0 шт):