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

Exemple de la façon dont Python3 capture les pages Web HTML générées dynamiquement par JS

黄舟
黄舟original
2018-05-18 15:51:354636parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn