Utilisez les extensions Python et WebDriver pour faire défiler et charger automatiquement plus de données sur les pages Web
Introduction :
Dans le développement Web, nous rencontrons parfois des situations où nous devons charger plus de données. Par exemple, nous souhaitons obtenir tous les commentaires ou la liste des actualités sur une page Web. De manière traditionnelle, nous devons dérouler manuellement la page Web ou cliquer sur le bouton « Charger plus » pour charger plus de données. Cependant, en utilisant les extensions Python et WebDriver, nous pouvons faire défiler automatiquement les pages Web pour charger plus de données et améliorer notre efficacité de travail.
Étapes :
Importez la bibliothèque et définissez le pilote du navigateur
Dans le script Python, vous devez d'abord importer la bibliothèque Selenium et définir le chemin d'accès au pilote du navigateur. En prenant ChromeDriver comme exemple, vous pouvez vous connecter au navigateur Chrome via le code suivant :
from selenium import webdriver driver = webdriver.Chrome('/path/to/chromedriver')
Ouvrez la page Web
Utilisez la méthode get de webdriver pour ouvrir la page Web requise. Par exemple, nous ouvrons une page Web d'actualités :
url = 'https://news.example.com' driver.get(url)
Chargement automatique de la page Web
Afin de charger plus de données, nous devons faire défiler automatiquement la page Web. Utilisez la méthode execute_script de webdriver pour simuler des scripts JavaScript. Dans ce cas, la méthode window.scrollTo() est utilisée pour implémenter le défilement :
driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
document.body.scrollHeight
dans le code ci-dessus signifie faire défiler vers le bas de la page. document.body.scrollHeight
表示滚动到页面的底部。
等待加载完成
在滚动网页加载更多数据后,我们需要等待页面加载完成,以便获取新加载的数据。使用webdriver的implicitly_wait方法设置等待时间:
driver.implicitly_wait(10) # 设置等待时间为10秒
获取数据
在等待加载完成后,可以使用beautifulsoup库解析网页并提取所需的数据。例如,我们可以使用以下代码获取新加载的评论:
from bs4 import BeautifulSoup soup = BeautifulSoup(driver.page_source, 'html.parser') comments = soup.find_all('div', class_='comment')
上述代码中的comment
Après avoir fait défiler la page Web pour charger plus de données, nous devons attendre que le chargement de la page soit terminé afin d'obtenir les données nouvellement chargées. Utilisez la méthode implicitly_wait de webdriver pour définir le temps d'attente :
while True: driver.execute_script("window.scrollTo(0, document.body.scrollHeight)") driver.implicitly_wait(10) soup = BeautifulSoup(driver.page_source, 'html.parser') comments = soup.find_all('div', class_='comment') if len(comments) >= 100: # 假设需要加载的评论数为100 break
comment
dans le code ci-dessus représente le nom de classe CSS du commentaire, qui doit être modifié en fonction de la structure spécifique de la page Web. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!