Maison > Article > développement back-end > Exemple de la façon dont Python3 capture les pages Web HTML générées dynamiquement par JS
Cet article présente principalement la fonction de Python3 pour capturer des pages Web HTML générées dynamiquement par javascript. Il analyse les compétences opérationnelles associées de Python3 en utilisant la bibliothèque sélénium pour capturer les éléments de pages Web HTML générés dynamiquement par javascript sous forme d'exemples. j'en ai besoin Pour référence,
L'exemple de cet article décrit comment Python3 implémente la fonction de saisie de pages Web HTML générées dynamiquement par javascript. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
L'utilisation d'urllib pour explorer des pages Web ne peut lire que les fichiers sources statiques de la page Web, mais ne peut pas capturer le contenu généré par javascript.
La raison est que urllib explore instantanément et n'attend pas le délai de chargement de javascript, donc le contenu généré par javascript dans la page ne peut pas être lu par urllib.
Est-il vraiment impossible de lire le contenu généré par javascript ? Non!
Ici, nous allons présenter une bibliothèque python : selenium. La version utilisée dans cet article est la 2.44.0
Installez-la d'abord :
pip install -U selenium
Ce qui suit utilise trois exemples. pour illustrer son utilisation. :
[Exemple 0]
Ouvrez un navigateur Firefox
Chargez la page avec l'adresse URL donnée
from selenium import webdriver browser = webdriver.Firefox() browser.get('http://www.baidu.com/')
[Exemple 1]
Ouvrez un navigateur Firefox
Chargez la page d'accueil de Baidu
Recherchez "seleniumhq"
Fermez le navigateur
from selenium import webdriver from selenium.webdriver.common.keys import Keys browser = webdriver.Firefox() browser.get('http://www.baidu.com') assert '百度' in browser.title elem = browser.find_element_by_name('p') # Find the search box elem.send_keys('seleniumhq' + Keys.RETURN) # 模拟按键 browser.quit()
【Exemple 2】
Selenium WebDriver est souvent utilisé pour tester les programmes réseau. Voici un exemple utilisant la bibliothèque standard Python unittest :
import unittest class BaiduTestCase(unittest.TestCase): def setUp(self): self.browser = webdriver.Firefox() self.addCleanup(self.browser.quit) def testPageTitle(self): self.browser.get('http://www.baidu.com') self.assertIn('百度', self.browser.title) if __name__ == '__main__': unittest.main(verbosity=2)
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!