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

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


python:parsers:ua-footbal

ua-football.com

Парсер забирает новости со страницы ua-football.com/sport

# https://pypi.org/project/beautifulsoup4/ - установить сторонний пакет с помощью пакетного менеджера pip
 
# pip freeze - список установленных пакетов
# pip install beautifulsoup4  установить пакет
 
from bs4 import BeautifulSoup
import urllib.request
 
# Создаем запрос к сайту
req = urllib.request.urlopen('https://www.ua-football.com/sport')
# Читаем ответ
html = req.read()
 
# Парсим страницу, features='html.parser' - модификатор (что парсим)
soup = BeautifulSoup(html, features='html.parser')
# Ищем новости
news = soup.find_all('li', class_='liga-news-item')
results = []
 
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')
    results.append({
        'title': title,
        'desc': desc,
        'link': link
        }
    )
f = open('news.txt', 'w', encoding='utf-8')
i=1
for item in results:
    # Запись в файл
    f.write(f'Новость №: {i}\n\n Название: {item["title"]} \n Описание: {item["desc"]}\n Ссылка: {item["link"]}\n\n*********\n\n')
    i += 1

результат:

Новость №: 1

 Название: Легенда мирового баскетбола Коби Брайант погиб в авиакатастрофе4 
 Описание: Коби Брайант погиб - большая потеря для мирового спорта
 Ссылка: /sport/basketball/1580068406-legenda-mirovogo-basketbola-kobi-brayant-pogib-v-aviakatastrofe.html

*********

Новость №: 2

 Название: Элиз Мертенс - Симона Халеп. Анонс и прогноз на матч Australian Open 
 Описание: Элиз Мертенс - Симона Халеп: Прогноз и анонс матча ⋉ 27.01.2020 ⋊ Australian Open онлайн на UA-Футбол
 Ссылка: /sport/tennis/1580058418-yeliz-martines-simona-halep-anons-i-prognoz-na-match-australian-open.html

*********

Новость №: 3
 ............

ООП версия парсера

# 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()
python/parsers/ua-footbal.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)