Инструменты пользователя

Инструменты сайта


python:parsers:ua-footbal

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
python:parsers:ua-footbal [2020/01/27 00:37]
werwolf
python:parsers:ua-footbal [2023/01/12 12:18] (текущий)
Строка 63: Строка 63:
  ​............  ​............
 </​sxh>​ </​sxh>​
 +
 +====ООП версия парсера====
 +
 +<code python>
 +# https://​pypi.org/​project/​beautifulsoup4/​ - установить сторонний пакет с помощью пакетного менеджера pip
 +# pip freeze - список установленных пакетов
 +# pip install beautifulsoup4 ​ установить пакет
 +
 +from bs4 import BeautifulSoup
 +import urllib.request
 +
 +class Parser:
 +
 +    row_html = ''​
 +    html = ''​
 +    results = []
 +
 +    def __init__(self,​ url, path):
 +        '''​
 +        Инициализация
 +
 +        :param url: адрес странички
 +        :param path: Куда сохранить файл
 +        '''​
 +        self.url = url
 +        self.path = path
 +
 +    def get_html(self):​
 +        '''​
 +        Получить страничку
 +        '''​
 +        req = urllib.request.urlopen(self.url)
 +        self.row_html = req.read()
 +        self.html = BeautifulSoup(self.row_html,​ features='​html.parser'​)
 +        return self
 +
 +    def parsing(self):​
 +        '''​
 +        Парсим новости
 +        '''​
 +        news = self.html.find_all('​li',​ class_='​liga-news-item'​)
 +        for item in news:
 +            # find - выбрать эдемент,​ getText - получить содержимое тега(strip=True - убрать пробелы)
 +            title = item.find('​span',​ class_='​d-block'​).getText(strip=True)
 +            desc = item.find('​span',​ class_='​name-dop'​).getText(strip=True)
 +            link = item.a.get('​href'​)
 +
 +            self.results.append({
 +                '​title':​ title,
 +                '​desc':​ desc,
 +                '​link':​ link})
 +        return self
 +
 +    def save(self):
 +        '''​
 +        Сохранить список
 +        '''​
 +        with open(self.path,​ '​w',​ encoding='​UTF-8'​) as f:
 +            i = 1
 +            for item in self.results:​
 +                # Запись в файл
 +                f.write(
 +                    f'​Новость №: {i}\n\n Название:​ {item["​title"​]} \n Описание:​ {item["​desc"​]}\n Ссылка:​ {item["​link"​]}\n\n*********\n\n'​)
 +                i += 1
 +
 +    def run(self):
 +        '''​
 +        Точка входа
 +        '''​
 +        self.get_html()\
 +            .parsing()\
 +            .save()
 +
 +</​code>​
python/parsers/ua-footbal.1580074658.txt.gz · Последние изменения: 2023/01/12 12:16 (внешнее изменение)