---
seo_title: Lecteur LlamaIndex pour Pages Web et Indexation de Sites | EnConvert
meta_desc: Installez llama-index-readers-enconvert pour convertir les pages web et sites entiers en LlamaIndex Documents pour la recherche sémantique, avec des scores render_quality.
keywords: lecteur de documents llamaindex, lecteur de page web llamaindex, crawl de sites llamaindex, perceive url llamaindex, ingest llamaindex, llama-index-readers-enconvert, index vectoriel llamaindex, score qualité perceive llamaindex
---

# Lecteur LlamaIndex pour Pages Web et Indexation de Sites

Le lecteur EnConvert pour [LlamaIndex](https://docs.llamaindex.ai) convertit les pages web et les sites entiers en LlamaIndex `Document`s. Percevez les URL individuelles en markdown ou parcourez un site entier et retournez un Document par chunk prêt pour indexation. Chaque rendu de page porte un score `render_quality` (0,0–1,0), de sorte qu'une page bloquée ou vide est signalée plutôt que d'être indexée silencieusement.

<div class="alert alert-info">
<strong>Paquet :</strong> <code>llama-index-readers-enconvert</code> · <strong>Source :</strong> <a href="https://github.com/enconvert/llama-index-readers-enconvert">enconvert/llama-index-readers-enconvert</a> · <strong>Requiert :</strong> <code>llama-index-core>=0.12,<0.15</code> · <strong>Licence :</strong> MIT
</div>

---

## Installation

```bash
pip install llama-index-readers-enconvert
```

---

## Ajoutez votre clé API

Le lecteur nécessite une accréditation : **Clé API EnConvert**.

```python
from llama_index.readers.enconvert import EnConvertReader

reader = EnConvertReader(api_key="sk_...")
# Ou définissez $ENCONVERT_API_KEY et omettez le paramètre
reader = EnConvertReader()
```

Générez une clé API **privée** dans le [tableau de bord](/dashboard/api-keys). Les clés privées commencent par `sk_`. Les clés publiques `pk_` sont rejetées.

<div class="alert alert-warning">
<strong>Les clés publiques ne fonctionneront pas.</strong> Les clés qui commencent par <code>pk_</code> sont destinées aux widgets du navigateur et sont rejetées par le lecteur. En savoir plus sur <a href="/docs/authentication#private-keys">Private Keys</a>.
</div>

---

## Utiliser EnConvertReader

Le lecteur supporte deux modes.

### Percevoir quelques URL

Convertir les URL individuelles en `Document`s markdown :

```python
from llama_index.readers.enconvert import EnConvertReader

reader = EnConvertReader(api_key="sk_...")
docs = reader.load_data(urls=["https://example.com", "https://example.com/pricing"])
```

Les métadonnées de chaque Document portent :
- `url` : l'URL source
- `render_quality` : un nombre de 0,0 (bloqué/vide) à 1,0 (rendu propre)

### Parcourir un site en chunks

Parcourez un site entier et retournez un Document par chunk de contenu, prêt pour la recherche sémantique :

```python
from llama_index.readers.enconvert import EnConvertReader

reader = EnConvertReader(api_key="sk_...")
docs = reader.load_data(
    ingest_url="https://docs.example.com",
    mode="sitemap",  # ou "crawl" ou "hybrid"
    max_pages=100
)
```

Les métadonnées de chaque Document portent l'URL `url` propre au chunk, le titre et le contexte de la section. Le lecteur interroge le travail d'ingestion jusqu'à l'achèvement, donc `load_data()` est synchrone.

---

## Construire un Index Vectoriel

Chaînez le lecteur dans un magasin vectoriel et une requête :

```python
from llama_index.readers.enconvert import EnConvertReader
from llama_index.core import VectorStoreIndex, StorageContext
from llama_index.core.storage.docstore import SimpleDocumentStore
from llama_index.core.vector_stores import SimpleVectorStore

# Charger les documents
reader = EnConvertReader(api_key="sk_...")
docs = reader.load_data(ingest_url="https://docs.example.com", mode="sitemap")

# Construire l'index
index = VectorStoreIndex.from_documents(docs)

# Requête
query_engine = index.as_query_engine()
response = query_engine.query("Comment installer ceci ?")
print(response)
```

---

## Dépannage

**`raise ValueError("Provide either urls or ingest_url, but not both")`**
Vous avez transmis à la fois `urls=` et `ingest_url=` à `load_data()`. Choisissez un : percevoir les URL individuelles ou parcourir un site. Transmettre aucun lève aussi une erreur.

**`AuthenticationError: 401 Unauthorized`**
La clé API est incorrecte ou manquante. Vérifiez que vous avez défini `api_key="sk_..."` ou la variable d'environnement `$ENCONVERT_API_KEY` sur une clé **privée** (commence par `sk_`). Les clés publiques sont rejetées immédiatement.

**`Le temps de chargement semble très long.`**
Les crawls de sites sont asynchrones. Le lecteur interroge jusqu'à l'achèvement du travail, ce qui peut prendre plusieurs minutes sur un grand site. Interrogez directement l'état du travail via `/v2/ingest/{job_id}` ou utilisez la variante async (si disponible).

**`render_quality est très bas pour les pages que je m'attendais à lire correctement.`**
Un score bas (< 0,5) signifie que la page est bloquée, vide ou a du JavaScript lourd qui n'a pas été rendu à temps. Vérifiez l'URL `url` source dans un navigateur pour voir ce que la page livre réellement. S'il s'agit d'une application mono-page, un deuxième rendu pourrait réussir ; s'il est bloqué, il n'y a pas de retry.

---

## Source et liens

- **Source** : [enconvert/llama-index-readers-enconvert](https://github.com/enconvert/llama-index-readers-enconvert)
- **Paquet** : [PyPI](https://pypi.org/project/llama-index-readers-enconvert)
- **Licence** : MIT
- **Documentation LlamaIndex** : [docs.llamaindex.ai](https://docs.llamaindex.ai)
- **API sous-jacente** : [Introduction](/docs/introduction.md)

---

## Questions fréquemment posées

### Comment charger une seule URL dans un Document ?

```python
from llama_index.readers.enconvert import EnConvertReader
reader = EnConvertReader(api_key="sk_...")
docs = reader.load_data(urls=["https://example.com"])
```

Le contenu de chaque Document est le markdown de la page, et les métadonnées portent l'URL `url` et le score `render_quality`.

### Comment parcourir et indexer un site entier ?

```python
from llama_index.readers.enconvert import EnConvertReader
from llama_index.core import VectorStoreIndex

reader = EnConvertReader(api_key="sk_...")
docs = reader.load_data(ingest_url="https://docs.example.com", mode="sitemap", max_pages=100)
index = VectorStoreIndex.from_documents(docs)

# Requête
engine = index.as_query_engine()
response = engine.query("Qu'est-ce que c'est ?")
```

### Comment vérifier la render_quality d'une page avant indexation ?

Les métadonnées de chaque Document incluent `render_quality`, un score de 0,0 à 1,0. Filtrez les documents de haute qualité avant indexation :

```python
high_quality = [doc for doc in docs if doc.metadata.get('render_quality', 1.0) > 0.5]
index = VectorStoreIndex.from_documents(high_quality)
```

### Puis-je parcourir plusieurs sites ?

Oui. Créez un lecteur par site et appelez `load_data()` séquentiellement ou parallelisez les appels dans votre propre code async.

### Puis-je utiliser ceci avec d'autres composants LlamaIndex ?

Oui. EnConvertReader retourne des LlamaIndex Documents standard, donc il fonctionne avec n'importe quel index ou composant en aval.
