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'),
]



