Skip to content

Book Scraper with BeautifulSoup

Architecture

Objectif

Extraire automatiquement des informations de livres depuis une page web HTML, puis stocker ces données dans un fichier JSON et une base de données SQLite.


Principe du projet

Le projet suit les étapes suivantes :

  1. Envoyer une requête HTTP vers une page web contenant des livres
  2. Analyser le code HTML avec BeautifulSoup
  3. Extraire les informations utiles (titre, prix, disponibilité, etc.)
  4. Sauvegarder les données dans un fichier JSON
  5. Insérer les données dans une base SQLite

Technologies utilisées

  • Python 3
  • Requests
  • BeautifulSoup (bs4)
  • JSON
  • SQLite3

Structure du projet

beautiful_soup-main/ │ ├── app/ │ ├── book_scraper.py │ └── books_to_sqlite.py │ ├── bib.json └── README.txt


Exemple de scraping (BeautifulSoup)

Le script lit le HTML de la page puis extrait les informations des livres.

import requests
from bs4 import BeautifulSoup

url = "http://books.toscrape.com"
response = requests.get(url)

soup = BeautifulSoup(response.text, "html.parser")

books = soup.find_all("article", class_="product_pod")

for book in books:
    title = book.h3.a["title"]
    price = book.find("p", class_="price_color").text
    print(title, price)

Sauvegarde en JSON

Les données extraites sont stockées dans un fichier JSON pour être réutilisées.

import json

with open("bib.json", "w", encoding="utf-8") as f:
    json.dump(data, f, indent=4)

Insertion dans SQLite

Les données sont ensuite insérées dans une base relationnelle SQLite.

import sqlite3

conn = sqlite3.connect("books.db")
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS books (
    id INTEGER PRIMARY KEY,
    title TEXT,
    price TEXT
)
""")

conn.commit()
conn.close()

Ce que j’ai appris

  • Comprendre le fonctionnement du Web Scraping
  • Parser du HTML avec BeautifulSoup
  • Transformer des données en JSON
  • Manipuler une base SQLite avec Python
  • Automatiser un pipeline de données simple

Liens


Auteur

Ahmad Abo-Alola — Student Project (AI Developer Training)