Le web scraping est une méthode puissante pour extraire des données de sites web, mais transformer du code HTML complexe en informations claires et structurées représente un défi de taille. C'est là qu'intervient Perplexity AI. Grâce à l'IA, vous pouvez extraire des données plus rapidement et avec plus de précision.

Dans ce blog, nous vous montrerons comment utiliser Perplexity AI pour le web scraping en Python. Vous apprendrez à récupérer du contenu HTML, à le convertir en Markdown pour une meilleure lisibilité et à utiliser l'IA pour extraire les données nécessaires. Nous vous montrerons également comment Crawlbase Proxy IA intelligent Vous aide à éviter les blocages et les captchas lors de l'extraction de sites web protégés. Inscrivez-vous dès maintenant et obtenez 5,000 XNUMX crédits gratuits.

Ce blog est destiné aux développeurs, aux analystes ou à toute personne souhaitant explorer le Web plus intelligemment.

📚 Table des matières

  1. Pourquoi utiliser Perplexity AI pour le Web Scraping ?
  2. Configuration de votre environnement Python
  1. Guide étape par étape pour utiliser Perplexity AI pour le scraping Web
  1. Défis et limites de Perplexity AI dans le Web Scraping
  2. Évitez d'être bloqué : utilisez Crawlbase Proxy IA intelligent
  3. Réflexions finales
  4. Foire aux questions (FAQ)

Pourquoi utiliser Perplexity AI pour le Web Scraping ?

Le scraping web traditionnel utilise des bibliothèques Python telles que requests et BeautifulSoup pour extraire les données du code HTML d'un site web. Ce procédé est efficace pour les sites simples, mais devient complexe lorsque le code HTML est complexe.

C'est là qu'intervient Perplexity AI.

Perplexity AI est un outil intelligent qui comprend le langage naturel et peut trouver des données structurées dans du contenu HTML brut. En l'associant au web scraping, il est plus facile d'extraire des données propres, utiles et organisées.

Avantages de Perplexity AI pour le Scraping :

  • Extraire des données de pages Web complexes
  • Réduit le temps consacré à l'écriture d'une logique d'analyse personnalisée
  • Fonctionne avec le HTML au format Markdown, ce qui rend l'extraction des données plus précise
  • Renvoie une sortie structurée comme JSON

En utilisant Perplexity AI pour le scraping Web en Python, vous scraperez plus rapidement, plus intelligemment et plus efficacement.

Configuration de votre environnement Python

Avant d'utiliser Perplexity AI pour le web scraping, nous devons préparer notre environnement Python. Cette configuration garantit le bon fonctionnement de l'ensemble et permet d'éviter les erreurs ultérieures.

Installer Python

Si vous ne l'avez pas déjà fait, installez Python à partir du site web officielPython est le langage principal que nous utiliserons pour envoyer des requêtes, traiter des données Web et communiquer avec l'API Perplexity.

Créer un environnement virtuel

Un environnement virtuel maintient les dépendances de votre projet organisées et évite les conflits avec d'autres projets Python.

Ouvrez votre terminal ou votre invite de commande et exécutez :

1
python -m venv perplexity_env

Activez ensuite l’environnement :

  • Windows:
1
perplexity_env\Scripts\activate
  • macOS/Linux :
1
source perplexité_env/bin/activate

Installer les bibliothèques requises

Maintenant, installons les packages Python dont nous avons besoin :

1
pip install beautifulsoup4 markdownify requêtes openai
  • beautifulsoup4: pour analyser le HTML
  • markdownify: pour convertir HTML en markdown
  • openai: pour se connecter à l'API Perplexity (utilise un format compatible OpenAI)
  • requests: pour envoyer des requêtes HTTP

Configurer l'accès à l'API Perplexity

Pour utiliser Perplexity pour le web scraping, vous avez besoin d'une clé API. Perplexity propose une API compatible avec OpenAI, ce qui signifie que vous pouvez utiliser le même format de code que les modèles GPT d'OpenAI.

Voici comment le configurer:

  1. Obtenez votre clé API depuis le tableau de bord de votre compte Perplexity.
  2. Définissez votre clé API dans votre code comme ça:
1
2
3
4
5
6
à partir de ouvert importer OpenAI

client = OpenAI(
api_key=" ",
base_url=« https://api.perplexity.ai »
)

Assurez-vous de conserver votre clé API en sécurité et de ne jamais la partager publiquement dans le code.

Guide étape par étape pour utiliser Perplexity AI pour le scraping Web

Dans cette section, nous vous montrerons comment créer un scraper web Python avec Perplexity AI. Vous apprendrez à scraper une page web, à nettoyer son contenu, à le convertir en Markdown et à utiliser Perplexity AI pour extraire les données. Nous utiliserons BeautifulSoup pour sélectionner uniquement la partie nécessaire de la page, évitant ainsi l'ajout de code HTML qui pourrait augmenter les coûts en utilisant davantage de jetons.

Nous utiliserons l’URL suivante comme exemple :

1
https://www.amazon.com/Art-War-DELUXE-Sun-Tzu/dp/9388369696/ref=sr_1_1

Envoyer des requêtes et analyser le HTML

Pour commencer, nous allons envoyer une requête HTTP au site web cible et récupérer son contenu HTML. Enregistrez le code Python suivant dans un fichier nommé crawl.py:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
à partir de demandes.exceptions importer DemandeException
à partir de urllib3.exceptions importer Avertissement de demande non sécurisée
importer demandes

# Supprimer uniquement l'avertissement unique de urllib3 nécessaire.
requests.packages.urllib3.disable_warnings(catégorie=InsecureRequestWarning)

EN-TÊTES = {
'accepter': 'texte/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
« agent utilisateur »: 'Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/137.0.0.0 Safari/537.36'
}

def ramper(url) -> str:
Essai:
réponse = requêtes.get(
url,
en-têtes=EN-TÊTES,
vérifier=Faux,
délai d'attente =30
)
réponse.raise_for_status()

retourner réponse.texte

sauf DemandeException as erreur:
impression(f"\nÉchec de l'exploration de l'URL '{URL}': {erreur}\n")
augmenter

if __nom__ == "__principale__":

html_content = crawl("https://www.amazon.com/Art-War-DELUXE-Sun-Tzu/dp/9388369696/ref=sr_1_1")
avec ouvert('sortie.html', 'w', encodage=« utf-8 ») as fichier:
fichier.write(contenu_html)

Exécutez le script à l'aide de la commande suivante :

1
python crawl.py

Lors de l'exécution, il générera un fichier de sortie nommé output.html.

Sortie du navigateur de pages de livres Amazon

Remarque:
Parfois, l'erreur suivante peut se produire en raison du blocage des demandes automatisées par Amazon :

1
Échec de l'analyse du code HTML en Markdown : 'AucunType' l'objet n'a pas d'attribut 'texte'

Si cela se produit, l’ouverture de output.html dans le navigateur peut afficher un résultat inattendu ou vide, comme illustré ci-dessous :

Sortie du navigateur de pages de livres Amazon

Il s'agit d'un problème courant sur les sites web utilisant une protection anti-bot. Pour y remédier, vous pouvez utiliser des en-têtes HTTP imitant un navigateur réel ou adopter des solutions plus avancées, telles que Crawlbase Smart AI Proxy, dont nous parlerons plus tard.

Convertir HTML en Markdown pour le traitement par l'IA

Perplexity AI est plus performant lorsque nous envoyons du texte clair et simplifié plutôt que du HTML brut. Pour ce faire, nous utiliserons markdownify bibliothèque pour convertir HTML en Markdown L'envoi uniquement de la section pertinente réduit l'utilisation des jetons et améliore la qualité des réponses de l'IA.

Nous allons analyser le contenu HTML avec BeautifulSoup. Enregistrez le code suivant dans un fichier nommé parse.py:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
à partir de ramper importer ramper
à partir de bs4 importer BeautifulSoup
à partir de Markdownifier importer Markdownifier as md

def analyser_html_au_format_markdown(contenu_html) -> str:
Essai:
soupe = BeautifulSoup(contenu_html, « Parseur HTML »)
élément = soup.find(id='centreCol')

retourner Maryland(str(élément.texte))
sauf Exception as erreur:
impression(f"\nÉchec de l'analyse du code HTML en Markdown : {erreur}\n")
augmenter

if __nom__ == "__principale__":

html_content = crawl("https://www.amazon.com/Art-War-DELUXE-Sun-Tzu/dp/9388369696/ref=sr_1_1")

markdown_content = analyser_html_en_format_markdown(html_content)
avec ouvert('output.md', 'w', encodage=« utf-8 ») as fichier:
fichier.write(markdown_content)

Maintenant, exécutez le script en utilisant la commande ci-dessous :

1
python parse.py

Cela générera un fichier de sortie nommé output.md. Lorsqu'il est visualisé avec un aperçu Markdown, il apparaîtra comme suit :

Sortie du navigateur de pages de livres Amazon

Le format Markdown épuré permet à des outils comme Perplexity AI de traiter plus efficacement le contenu, leur permettant de se concentrer sur les informations les plus pertinentes.

Formatage des invites de l'IA

Pour obtenir les meilleurs résultats avec Perplexity AI, fournissez des instructions claires (invites). Ces invites aident l'IA à comprendre ce que vous souhaitez extraire.

Voici un exemple d’invite :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
invite = [
{
"rôle": "système",
"teneur": « Vous êtes un assistant utile qui résume une page de livre de produits Amazon. »
},
{
"rôle": "utilisateur",
"teneur": (
« Extraire les détails suivants du Markdown :\n »
"- 1 résumé en XNUMX phrase\n"
« - Recherchez sur le Web des lectures recommandées »
"- Prix\n\n"
f"Markdown:\n{markdown_content}\n\n"
« Répondez uniquement avec les données extraites au format JSON. »
),
},
]

Cette invite indique à l’IA exactement ce qu’elle doit extraire du contenu.

Alimenter l'IA pour analyse

Maintenant, envoyons cette invite à Perplexity AI en utilisant leur API compatible OpenAI :

Enregistrer dans perplexity_ai_powered_scraper.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
à partir de ramper importer ramper
à partir de analyser importer analyser_html_au_format_markdown
à partir de ouvert importer OpenAI
importer json

URL = "https://www.amazon.com/Art-War-DELUXE-Sun-Tzu/dp/9388369696/ref=sr_1_1"

html_content = crawl(URL)
markdown_content = analyser_html_en_format_markdown(html_content)

invite = [
{
"rôle": "système",
"teneur": « Vous êtes un assistant utile qui résume une page de livre de produits Amazon. »
},
{
"rôle": "utilisateur",
"teneur": (
« Extraire les détails suivants du Markdown :\n »
"- 1 résumé en XNUMX phrase\n"
« - Recherchez sur le Web des lectures recommandées »
"- Prix\n\n"
f"Markdown:\n{markdown_content}\n\n"
« Répondez uniquement avec les données extraites au format JSON. »
),
},
]

client = OpenAI(api_key=" ", base_url=« https://api.perplexity.ai »)

# Envoyer une demande de fin de discussion
réponse = client.chat.completions.create(
modèle =« sonar-pro »,
messages=invite,
)

# Exporter le résultat au format JSON
scraped_data = json.loads(response.choices[0]contenu du message)

impression(json.dumps(données_grattées, indent=2))

Assurez-vous de remplacer <perplexity.ai API KEY> avec la clé API précédente et exécutez le code à l'aide de la commande ci-dessous.

1
python perplexity_ai_powered_scraper.py

Cela produira un texte json :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"Résumé en 1 phrase": « L'Art de la guerre est un ancien traité militaire chinois de Sun Tzu qui met l'accent sur la planification stratégique, la compréhension de soi-même et de l'ennemi, et l'utilisation de tactiques adaptables pour remporter la victoire dans les conflits et au-delà[1][3][4]. »,
"lecture_recommandée": [
« De la guerre par Carl von Clausewitz »,
« Le Livre des Cinq Anneaux de Miyamoto Musashi »,
« Leadership et stratégie selon Sun Tzu et d'autres maîtres » par William A. Cohen,
« Les 33 stratégies de guerre de Robert Greene »,
« Le Prince de Nicolas Machiavel »
],
"prix": [
{
"format": « Couverture rigide (édition de luxe reliée) »,
"prix": «$ 15.80»
}
]
}

Vous pouvez consulter le code source complet sur GitHub.

Défis et limites de Perplexity AI dans le Web Scraping

Bien que Perplexity AI offre des fonctionnalités puissantes pour le web scraping, il présente certains défis :

Images montrant les défis et les limites de Perplexity AI dans le web scraping

Comprendre ces limitations vous aide à maximiser les avantages de Perplexity AI pour le scraping Web tout en minimisant les problèmes potentiels.

Évitez d'être bloqué : utilisez Crawlbase Proxy IA intelligent

Lors du scraping avec Perplexity AI, les sites Web bloquent souvent les robots, ce qui rend l'obtention de données plus difficile. Crawlbase Proxy IA intelligent résout ce problème en faisant tourner les adresses IP et en contournant les CAPTCHA, vous permettant ainsi de parcourir des sites Web sans être bloqué.

Pourquoi utiliser Crawlbase Proxy IA intelligent avec Perplexity AI ?

  1. Contourner les blocages IP: Fait pivoter les adresses IP pour éviter la détection.
  2. Contourner les CAPTCHA:Gère automatiquement les CAPTCHA, vous n'avez donc pas à le faire.
  3. Gagnez du temps:Pas besoin de gérer des serveurs proxy—Crawlbase fait tout.
  4. Nettoyer le HTML: Renvoie du code HTML prêt à l'emploi pour Perplexity AI.

Exemple de code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
à partir de bs4 importer BeautifulSoup
à partir de Markdownifier importer Markdownifier as md
à partir de demandes.exceptions importer DemandeException
à partir de urllib3.exceptions importer Avertissement de demande non sécurisée
importer demandes

# Supprimer uniquement l'avertissement unique de urllib3 nécessaire.
requests.packages.urllib3.disable_warnings(catégorie=InsecureRequestWarning)

EN-TÊTES = {
'accepter': 'texte/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
« agent utilisateur »: 'Mozilla/5.0 (Windows NT 10.0 ; Win64 ; x64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/137.0.0.0 Safari/537.36'
}

def crawl_with_smart_proxy(url) -> str:
url_proxy = "http:// :@smartproxy.crawlbase.com:8012" # Utilisez https:// et le port 8013 pour HTTPS
mandataires = {
"http": url_proxy,
« https »: proxy_url
}

Essai:
réponse = requêtes.get(
url,
en-têtes=EN-TÊTES,
proxys=proxys,
vérifier=Faux,
délai d'attente =30
)
réponse.raise_for_status()

retourner réponse.texte

sauf DemandeException as erreur:
impression(f"\nÉchec de l'exploration de l'URL '{URL}': {erreur}\n")
augmenter

et Crawlbase Smart AI Proxy, vous pouvez récupérer des sites Web en toute sécurité, contourner les blocages et obtenir des données propres à traiter avec Perplexity AI.

Réflexions finales

Utiliser Perplexity AI pour le scraping web en Python peut optimiser vos tâches de scraping en les rendant plus rapides, plus intelligentes et plus précises. En convertissant du HTML brut en Markdown et en utilisant l'IA pour extraire des données structurées, vous pouvez rationaliser votre processus et gagner du temps.

Cependant, récupérer des données sur des sites web peut s'avérer complexe, notamment en cas de blocages et de CAPTCHA. C'est là que Crawlbase Proxy IA intelligent Il vous aide à éviter les blocages d'adresses IP et à contourner les CAPTCHA, vous permettant ainsi d'explorer des sites web sans interruption. Cette combinaison de Perplexity AI et Crawlbase Smart AI Proxy rend le scraping Web plus efficace et évolutif, vous permettant d'obtenir les données dont vous avez besoin sans être bloqué.

Foire aux questions (FAQ)

Q. Qu'est-ce que Perplexity AI et comment aide-t-il au scraping Web ?

Perplexity AI est un outil qui utilise le traitement du langage naturel pour extraire des données structurées à partir de contenu HTML brut. Il simplifie le scraping en convertissant le HTML complexe en Markdown lisible et en extrayant les détails clés grâce à l'IA. Il vous fait gagner du temps et améliore la précision de l'extraction des données.

Q. Comment Crawlbase Smart AI Proxy empêche mon scraper d'être bloqué ?

Crawlbase Proxy IA intelligent Il effectue la rotation des adresses IP et contourne les CAPTCHA, donnant l'impression qu'un utilisateur réel navigue sur le site. Il évite les blocages d'adresses IP et vous permet de scraper des sites web sans être détecté comme un robot. Un outil fiable pour assurer le bon fonctionnement de vos tâches de scraping.

Q. Puis-je utiliser Perplexity AI et Crawlbase Smart AI Proxy ensemble ?

Oui ! Utilisation de Perplexity AI pour l'extraction de données et Crawlbase Smart AI Proxy pour contourner les blocages et les CAPTCHA est une combinaison mortelle. Crawlbase permet un accès transparent au site Web et Perplexity AI facilite le nettoyage et le traitement des données.