How to clean duplicate data from webscraping?

So I want to make a list of books from a bookstore with a web scraper. I need the title and author of books. I can get the title nicely. The problem is with author. Namely the class of title is the same with different data. If I run the script it duplictes the data and in addition the data I don’t need (book code, publisher, year etc.)

Here is the script
`

import requests
from bs4 import BeautifulSoup

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
response = requests.get('https://www.apollo.ee/raamatud/eestikeelsed-raamatud/ilukirjandus/ulme-ja-oudus?page=7&mode=list',headers=headers)
webpage = response.content
soup = BeautifulSoup(webpage,'html.parser')

for parent in soup.find_all('div',class_='product-info'):
    for n,tag in enumerate(parent.find_all('div')):
        title = [x for x in tag.find_all('a',class_='block no-underline product-link')]
        author = [x for x in tag.find_all('span',class_='info__text block weight-700 mt8 mb16')]
        for item in title:
            print('TITLE:',item.text.strip())
        for item in author:
            author = item.text.split('\n')
            print('AUTHOR: ',item.text.strip())

`

Example result:

TITLE: Parv II

AUTHOR: Frank Schätzing

AUTHOR: 9789985317105

AUTHOR: Varrak

AUTHOR: Kõvakaaneline

AUTHOR: 2010

AUTHOR: Frank Schätzing

AUTHOR: 9789985317105

AUTHOR: Varrak

AUTHOR: Kõvakaaneline

AUTHOR: 2010

AUTHOR: Frank Schätzing

AUTHOR: 9789985317105

AUTHOR: Varrak

As you can see the data for the author duplicates and I get data that I don’t need(publisher, year, code etc). Now I know that all these different data have the same class. My question would be: Is there a way to get only data for the author? Or how to clean it?

Thank you

>Solution :

You can use CSS selectors to properly select the Title/Author:

import requests
from bs4 import BeautifulSoup


url = "https://www.apollo.ee/raamatud/eestikeelsed-raamatud/ilukirjandus/ulme-ja-oudus?page=7&mode=list"
soup = BeautifulSoup(requests.get(url).content, "html.parser")

for book in soup.select(".product"):
    title = book.select_one(".product-title").text.strip()
    author = book.select_one(
        ".info__title:-soup-contains(Autor) + span"
    ).text.strip()
    print("{:<50} {}".format(title, author))

Prints:

Eric                                               Terry Pratchett
Lõputuse piirid                                    Lois McMaster Bujold
Mõõkade maru. II raamat                            George R. R. Martin
Euromant                                           Maniakkide Tänav
Joosta oma varju eest. Täheaeg 9                   Triinu Meres, Kadri Pettai, Maniakkide tänav, Tea Roosvald, Ülle Lätte, Jeff Vandermeer
Ilus pimedus                                       Kami Garcia, Margaret Stohl
Bal-Sagothi jumalad                                Robert E. Howard
Tüdruk veiniplekiga kleidis                        Eda Kalmre
Talvesepp                                          Terry Pratchett
Võluv võrdsus                                      Terry Pratchett
Nekromanteion                                      Arvi Nikkarev
Vere magus lõhn                                    Suzanne McLeod
Tantsud armastuse lõppu                            Liis Koger
Kõrbeoda                                           Peter V. Brett
Palimpsest                                         Charles Stross
Tigana                                             Guy Gavriel Kay
Kardinali mõõgad                                   Pierre Pevel
Ajaratsurid: Kättemaksja.                          P.C.Cast
Hullumeelsuse mägedes                              H. P. Lovecraft
Vori mäng                                          Lois McMaster Bujold
Ajalooja                                           Milvi Martina Piir
Punane Sonja                                       Robert E. Howard
Sõda kosmose rannavetes                            Raul Sulbi
Katastroof                                         Krystyna Kuhn
Robotid ja impeerium                               Isaac Asimov
Ajaratsurid: Tapja                                 Cindy Dees
Hundipäikese aeg III                               Tamur Kusnets
Gort Ashryn III osa. Rahu                          Leo Kunnas
Surnud, kuni jõuab öö                              Charlaine Harris
Lase sisse see õige                                John Ajvide Lindqvist
Mäng                                               Krystyna Kuhn
Järgmiseks                                         Crichton, Michael
Kõigi hingede öö                                   Jennifer  Armintrout
Kaose märk                                         Roger Zelazny
Allakäik                                           Guillermo del Toro, Chuck Hogan
Külmavõetud                                        Richelle Mead
Nähtamatud akadeemikud                             Terry Pratchett
Varjus hiilija                                     Aleksei Pehhov
Ajaratsurid: Otsija                                Lindsay McKenna
Maalingutega mees                                  Peter V. Brett
Viimane sõrmusekandja                              Kirill Jeskov
Falkenbergi leegion                                Jerry Pournelle
Sõduri õpilane                                     Lois McMaster Bujold
Vampiiri kättemaks                                 Alexis Morgan
Kurjuse küüsis                                     Jennifer Armintrout
Tiiger! Tiiger!                                    Alfred Bester
Tume torn                                          Stephen King
Koidu robotid                                      Isaac Asimov
Nõid                                               Michael Scott
Päevane vahtkond                                   Sergei Lukjanenko
Perpendikulaarne maailm                            Kir Bulöchov
Ümbersünd                                          Jennifer Armintrout
Kadunud oaas                                       Paul Sussman
Täheaeg 7. Ingel ja kvantkristall                  Raul Sulbi
Leek sügaviku kohal                                Vernor Vinge
Sümfoonia katkenud keelele                         Siim Veskimees
Parv II                                            Frank Schätzing
Kuldne linn                                        John Twelve Hawks
Hõbekeel                                           Charlie Fletcher
Rahategu                                           Terry Pratchett
Amberi veri                                        Roger Zelazny
Kuninga tagasitulek                                J.R.R. Tolkien
Tõbi                                               Guillermo del Toro, Chuck Hogan
Võõrana võõral maal                                Robert A. Heinlein
Elu, universum ja kõik                             Douglas Adams
Frenchi ja Koulu reisid                            Indrek Hargla
13. sõdalane. Laibaõgijad                          Michael Crichton
Accelerando                                        Charles Stross
Universumi lõpu restoran                           Douglas Adams
Surmakarva                                         Maniakkide Tänav
Kauge maa laulud                                   Arthur C. Clarke
Pöidlaküüdi reisijuht galaktikas                   Douglas Adams
Alasti päike                                       Isaac Asimov
Barrayar                                           Loius McMaster Bujold
Fevre´i unelm                                      George R.R. Martin
Hukatuse kaardid                                   Roger Zelazny
Loomine                                            Bernard Beckett
Pika talve algus. Täheaeg 6                        Raul Sulbi
Troonide mäng. II raamat                           George R. R. Martin
Malakas                                            Terry Pratchett
Kuninglik salamõrtsukas                            Robin Hobb
Algolagnia                                         Marion Andra
Tormikuninganna                                    Marion Zimmer Bradley
Munk maailma äärel                                 Skarabeus
Alaizabel Cray painaja                             Chris Wooding
Anubise väravad                                    Tim Powers
Lisey lugu                                         Stephen King
Postiteenistus                                     Terry Pratchett
Linnusild                                          Barry Hughart
Raudkäsi                                           Charlie Fletcher
Südame metsad                                      Charles de Lint
Meie, kromanjoonlased                              Tiit Tarlap
Calla hundid                                       Stephen King
Ruunimärgid                                        Joanne Harris
Tuule nimi. Kuningatapja kroonika I osa 2. raamat  Patrick Rothfuss
Windhaven                                          George R. R. Martin, Lisa Tuttle
Taevane tuli                                       Anne Robillard
Vampiiri käealune                                  Darren Shan
Teemärgid                                          Roger Zelazny
Kinnimüüritud tuba                                 Ilo

Leave a Reply