Attendez que la page se charge avant l'obtention de données avec des requêtes.obtenez en python 3
J'ai une page que j'ai besoin d'obtenir la source à utiliser avec BS4, mais le milieu de la page prend 1 seconde(peut-être moins) pour charger le contenu, et les demandes.obtenir des captures de la source de la page avant de la section de charges, comment puis-je attendre une seconde avant de récupérer les données?
r = requests.get(URL + self.search, headers=USER_AGENT, timeout=5 )
soup = BeautifulSoup(r.content, 'html.parser')
a = soup.find_all('section', 'wrapper')
<section class="wrapper" id="resultado_busca">
Vous devez vous connecter pour publier un commentaire.
Il ne ressemble pas à un problème d'attente, il semble que l'élément est créé par JavaScript,
requests
ne peut pas gérer dynamiquement les éléments générés par le JavaScript. Une suggestion est d'utilisersélénium
avecPhantomJS
pour obtenir le code source de la page, puis vous pouvez utiliserBeautifulSoup
pour votre analyse, le code indiqué ci-dessous permettra de faire exactement cela:Aussi, il n'y a pas besoin d'utiliser
.findAll
si vous êtes seulement à la recherche d'un élément.En Python 3, en Utilisant le module
urllib
dans la pratique, il fonctionne mieux lorsque le chargement des pages internet dynamiques de larequests
module.je.e