CoderCastrov logo
CoderCastrov
Парсинг

Изучение парсинга данных с помощью Beautifulsoup и Python (гл. 1)

Изучение парсинга данных с помощью Beautifulsoup и Python (гл. 1)
просмотров
2 мин чтение
#Парсинг
Table Of Content
    Python Programming

    _url = _http://books.toscrape.com/

    Шаг 1: Импорт Beautifulsoup и Request в Python

    Импорт

    Затем откройте указанный URL и найдите данные, которые нужно спарсить

    Поиск данных

    Спарсите данные с помощью тега (article) и класса (product_pod). Поскольку на странице 1 отображается только 20 элементов из 1000 результатов, нужно просканировать 50 страниц (1000 / 20 = 50). Иными словами, нужно спарсить 1000 данных с тегом (article) и классом (product_pod)

    Спарсить данные

    Затем найдите данные, которые нужно спарсить

    Данные изображения Данные заголовка Данные рейтинга Данные цены

    Поскольку индикатор рейтинга находится в атрибуте класса, сначала создайте функцию для преобразования рейтинга

    Преобразование рейтинга

    Затем спарсите все найденные данные

    Спарсить данные

    Результаты выводятся на изображениях ниже

    Страница 1 Страница 50

    Вот и все! Простой способ спарсить данные с веб-страницы. Спасибо за внимание.

    from bs4 import BeautifulSoup
    import requests
    
    def convert_Rating(Rating):
        if Rating == ['star-rating', 'One']:
            Rating = '1'
            return Rating
        elif Rating == ['star-rating', 'Two']:
            Rating = '2'
            return Rating
        elif Rating == ['star-rating', 'Three']:
            Rating = '3'
            return Rating
        elif Rating == ['star-rating', 'Four']:
            Rating = '4'
            return Rating
        else:
            Rating = '5'
            return Rating
    
    try :
        print('')
        print('Начало парсинга...')
        print('')
        for page in range(1, 51):
            html = requests.get('http://books.toscrape.com/catalogue/page-'+str(page)+'.html')
            html_soup = BeautifulSoup(html.content, 'html.parser')
            big_box = html_soup.find_all('article', class_ = 'product_pod')
            print('----------------------')
            print('~ ~ ~ Страница ' + str(page) + ' ~ ~ ~')
            print('----------------------')
            for item in big_box:
    
                dataGambar = item.find('img', class_='thumbnail')
                Gambar = dataGambar.get('src')
    
                dataJudul = item.find('h3')
                dataJudul2 = dataJudul.find('a')
                Judul = dataJudul2.get('title')
    
                dataRating = item.find('p')
                dataRating2 = dataRating.get('class')
                Rating = convert_Rating(dataRating2)
    
                Harga = item.find('p', class_ = 'price_color').text
    
                print('')
                print('Изображение: ' + str(Gambar.replace('..','http://books.toscrape.com')))
                print('Заголовок: ' + str(Judul))
                print('Рейтинг: ' + str(Rating))
                print('Цена: ' + Harga.replace('£',''))
                print('')
    
    except Exception as err :
        ('')