spermspace

Untitled

Mar 19th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.01 KB | None | 0 0
  1. rss_lenta.html
  2. {% extends 'bootstrap4.html' %}
  3. {% load bootstrap4 %}
  4. {% block bootstrap4_content %}
  5. <style media="screen">
  6.     .row.mx-auto.d-flex.justify-content-center{
  7.         flex-direction: column;
  8.     }
  9. </style>
  10. <h1 class="pt-3 text-center mx-auto">RSS портала example</h1>
  11.  
  12. <div class="container mt-5">
  13.  
  14. <div class="row mx-auto d-flex justify-content-center">
  15.     {% for key, value in context.items %}
  16.       <a href="https://www.example.ru{{ key }}">{{ value }}</a>
  17.     {% endfor %}
  18. </div>
  19.  
  20. {% endblock %}
  21.  
  22.  
  23. =============================================================================================
  24.  
  25.  
  26. views.py
  27.  
  28. from django.shortcuts import render
  29. from django.http import HttpResponse
  30. from django.utils.datastructures import MultiValueDictKeyError
  31. from django.views import generic
  32. from django.views.generic.base import TemplateView
  33. from django.template import loader
  34.  
  35. import re
  36. from collections import Counter
  37.  
  38. import urllib.request
  39. import lxml.html
  40.  
  41.  
  42. class HomeRss(TemplateView):
  43.     template_name = 'rss_lenta.html'
  44.  
  45.     def get_context_data(self, **kwargs):
  46.  
  47.         examplePars = urllib.request.urlopen('https://www.example.ru/news/archive')
  48.         dom = lxml.html.fromstring(examplePars.read())
  49.         soup_title = dom.xpath('//div[@class="views-field-title"]/span/a/text()')[:10]
  50.         soup_url = dom.xpath('//div[@class="views-field-title"]/span/a/@href')[:10]
  51.         context = dict(zip(soup_url, soup_title))
  52.         return context
  53.  
  54.  
  55.  
  56.  
  57. def logs_parser(request):
  58.     if request.method == 'POST':
  59.         f = request.FILES['file_uploads'].read()
  60.         txt = str(f.decode('utf-8'))
  61.  
  62.         pattern = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
  63.         ips = re.findall(pattern, txt)
  64.         result = Counter(ips).most_common(10)
  65.  
  66.         ban = []
  67.         for key, value in result:
  68.             if value > 10:
  69.                 ban.append({'ip': key, 'frequency': value})
  70.  
  71.         return render(request, 'logs_parser.html', {'ips': ban})
  72.     return render(request, 'logs_parser.html')
Add Comment
Please, Sign In to add comment