Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- rss_lenta.html
- {% extends 'bootstrap4.html' %}
- {% load bootstrap4 %}
- {% block bootstrap4_content %}
- <style media="screen">
- .row.mx-auto.d-flex.justify-content-center{
- flex-direction: column;
- }
- </style>
- <h1 class="pt-3 text-center mx-auto">RSS портала example</h1>
- <div class="container mt-5">
- <div class="row mx-auto d-flex justify-content-center">
- {% for key, value in context.items %}
- <a href="https://www.example.ru{{ key }}">{{ value }}</a>
- {% endfor %}
- </div>
- {% endblock %}
- =============================================================================================
- views.py
- from django.shortcuts import render
- from django.http import HttpResponse
- from django.utils.datastructures import MultiValueDictKeyError
- from django.views import generic
- from django.views.generic.base import TemplateView
- from django.template import loader
- import re
- from collections import Counter
- import urllib.request
- import lxml.html
- class HomeRss(TemplateView):
- template_name = 'rss_lenta.html'
- def get_context_data(self, **kwargs):
- examplePars = urllib.request.urlopen('https://www.example.ru/news/archive')
- dom = lxml.html.fromstring(examplePars.read())
- soup_title = dom.xpath('//div[@class="views-field-title"]/span/a/text()')[:10]
- soup_url = dom.xpath('//div[@class="views-field-title"]/span/a/@href')[:10]
- context = dict(zip(soup_url, soup_title))
- return context
- def logs_parser(request):
- if request.method == 'POST':
- f = request.FILES['file_uploads'].read()
- txt = str(f.decode('utf-8'))
- pattern = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
- ips = re.findall(pattern, txt)
- result = Counter(ips).most_common(10)
- ban = []
- for key, value in result:
- if value > 10:
- ban.append({'ip': key, 'frequency': value})
- return render(request, 'logs_parser.html', {'ips': ban})
- return render(request, 'logs_parser.html')
Add Comment
Please, Sign In to add comment