? Voici les possibilités qui s'offrent à vous :","Crunchbase","A propos de nous","Merci à tous pour votre formidable soutien !","Liens rapides","Programme d'affiliation","Prime","ProxyScrape essai premium","Vérificateur de procuration en ligne","Types de mandataires","Pays mandataires","Cas d'utilisation du proxy","Important","Politique en matière de cookies","Clause de non-responsabilité","Politique de confidentialité","Conditions d'utilisation","Médias sociaux","Facebook","LinkedIn","Twitter","Quora","Télégramme","Discord","\n © Copyright 2024 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgique | VAT BE 0749 716 760\n"]}
Dans le monde d'aujourd'hui, tout le monde utilise les nouvelles technologies. Vous pouvez accéder aux données structurées de manière automatisée à l'aide du web scraping. Par exemple, vous pouvez utiliser le web scraping pour : Le défilement infini, également connu sous le nom de "scrolling sans fin", est une technique de conception web que les sites web utilisent souvent avec AJAX ou Javascript.
Dans le monde d'aujourd'hui, tout le monde utilise les nouvelles technologies. Vous pouvez accéder aux données structurées de manière automatisée à l'aide du web scraping. Par exemple, vous pouvez utiliser le web scraping pour :
Le défilement infini est une technique de conception web que les sites web utilisent souvent avec AJAX ou Javascript pour charger dynamiquement du contenu supplémentaire lorsque l'utilisateur fait défiler la page web vers le bas. Cette technique a gagné en popularité grâce à son succès sur les sites de médias sociaux. Par exemple, le défilement infini sur Twitter est produit par un chargement asynchrone. Twitter effectue des appels AJAX après le chargement de la page afin d'ajouter continuellement du nouveau contenu au fur et à mesure du défilement. Bien que le défilement infini présente de nombreux avantages, il n'est pas recommandé pour les tâches de recherche orientées vers un objectif, qui nécessitent de localiser un contenu particulier.
Comprenons d'abord les avantages du scraping de pages à défilement infini.
Voici quelques-unes des raisons pour lesquelles il faut scraper les pages à défilement infini.
Outre les avantages susmentionnés du scraping de pages à défilement infini, il y a aussi des inconvénients :
Voyons comment récupérer des pages à défilement infini en utilisant Python à l'aide des étapes mentionnées ci-dessous.
Vous devez importer la bibliothèque Selenium.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
Ici, vous devez choisir le navigateur que vous souhaitez utiliser. Nous choisirons Chrome car il offre plus d'options que Firefox.
def get_selenium() :
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument('--incognito')
options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=options)
return (pilote)
L'argument headless mentionné ci-dessus est très important. Selenium n'ouvrira pas Chrome dans une nouvelle fenêtre lorsqu'il s'exécute sans tête dans Python. Cependant, si vous rencontrez un problème lors du scraping, vous pouvez commenter l'option headless et voir ce qui se passe dans Chrome et ce qui est chargé sur la page.
Nous pouvons omettre les deux drapeaux i-e ; ignore-certificate-errors et incognito.
Si vous rencontrez un captcha ou une bannière de cookies qui empêche le chargement de votre page, vous pouvez cliquer sur OK et accéder à la page normalement. Toutefois, si le navigateur se ferme inopinément, vous pouvez utiliser time.sleep() pour mettre le code en pause et prendre le temps de le déboguer.
Vous devez examiner la structure HTML de votre page pour corriger le défilement infini et suivre les étapes mentionnées ci-dessous.
L'exemple ci-dessous vous permettra de mieux comprendre.
selenium = get_selenium()
selenium.get("your/url")
last_elem = '';
while True:
current_last_elem = "#my-div > ul > li:last-child"
scroll = "document.querySelector(\'" + current_last_elem + "\').scrollIntoView() ;"
selenium.execute_script(scroll)
time.sleep(3)
if (last_elem == current_elem)
break
else
last_elem = current_elem
Dans le code ci-dessus, nous avons utilisé jQuery et Javascript dans Python.
Ici,
selenium.get("your/url.com/{0}".format(keyword))
"document.querySelector(\'"" + .. + "\N-).scrollIntoView() ;"
Ici, votre format doit être correct, vous devez donc faire attention aux guillemets simples et doubles et aux caractères d'échappement.
Voici quelques-uns des problèmes qui se posent fréquemment lors d'un défilement infini :
Il est possible de déclencher un script js à partir de Python et d'obtenir une liste comme résultat.
Par exemple, nous pouvons utiliser le code ci-dessous pour obtenir les sources de toutes les images de la page.
js_script = '''\N-'''\N-'''\N-'''\N
var jslist = []
document.querySelectorAll('img').forEach(i => jslist.push(i.src)) ;
return jslist ;
' ''
python_list = selenium.execute_script(js_script)
Dans le code ci-dessus,
Nous pouvons utiliser la même approche pour les liens href en :
Nous pouvons ensuite exécuter le script avec selenium.execute_script() et stocker la valeur retournée par js dans une variable python, python_list.
Voici comment nous pouvons récupérer des pages à défilement infini en utilisant Python.
Vous savez qu'un proxy est un serveur tiers qui agit comme un intermédiaire entre un client qui demande une ressource et un serveur qui fournit cette ressource. Si vous souhaitez utiliser proxys avec Selenium et Python, vous pouvez utiliser les lignes de code suivantes.
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s'% hostname +" : "+port)
driver = webdriver.Chrome(chrome_options=chrome_options)
Pour gérer le défilement infini, vous pouvez utiliser scroll-proxy qui prend en charge le défilement programmatique des vues défilables au sein d'une hiérarchie de vues. Si vous utilisez npm, vous pouvez installer scroll-proxy en utilisant la commande ci-dessous. Nous utiliserons js pour démontrer l'utilisation de scroll-proxy.
npm install scroll-proxy--save
Après avoir installé scroll-proxy, vous pouvez instancier un objet ScrollProxy à l'aide du code ci-dessous.
var myScroll = new ScrollProxy() ;
Vous pouvez voir que nous n'avons pas passé d'arguments au constructeur du ScrollProxy parce qu'il signalera des actions par défaut lorsque l'utilisateur fera défiler la page.
Cependant, si vous souhaitez obtenir des mises à jour lorsque l'utilisateur fait défiler un élément HTML spécifique, vous devez le passer dans le constructeur.
var myDiv = document.querySelector('.scrollable') ;
var myDivScroll = new ScrollProxy(myDiv) ;
Voici quelques raisons d'utiliser proxys lors du scraping du scrolling infini.
Nous avons vu que le défilement infini est préférable lorsque l'utilisateur ne recherche pas d'informations spécifiques. Les sites d'actualités et les flux de médias sociaux qui génèrent constamment du nouveau contenu peuvent bénéficier du défilement infini. En revanche, les pages professionnelles et les sites de commerce électronique ne sont pas de bons candidats pour le défilement infini, car les utilisateurs recherchent des informations spécifiques. En outre, nous avons discuté des étapes impliquées dans le scraping de pages à défilement infini à l'aide de Selenium. Nous pouvons également utiliser le site résidentiel rotatif proxys pour gérer le défilement infini, car il permet d'éviter les captchas et de filtrer les demandes d'en-tête suspectes.
J'espère que vous avez compris comment récupérer des pages à défilement infini en utilisant Python.