Dieser Artikel stellt hauptsächlich die Funktion von Python3 zum Erfassen von dynamisch von JavaScript generierten HTML-Webseiten vor und analysiert die relevanten Betriebstechniken von Python3 mithilfe der Selenium-Bibliothek zum Erfassen von dynamisch von JavaScript generierten HTML-Webseitenelementen, kombiniert mit Beispielen es kann Als Referenz:
Das Beispiel in diesem Artikel beschreibt, wie Python3 die Funktion implementiert, dynamisch von Javascript generierte HTML-Webseiten abzurufen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Mit urllib zum Crawlen von Webseiten können nur die statischen Quelldateien der Webseite gelesen, der von Javascript generierte Inhalt jedoch nicht erfasst werden.
Der Grund dafür ist, dass urllib sofort crawlt und nicht auf die Ladeverzögerung von Javascript wartet, sodass der von Javascript auf der Seite generierte Inhalt von urllib nicht gelesen werden kann.
Ist es wirklich unmöglich, den von Javascript generierten Inhalt zu lesen? NEIN!
Hier stellen wir eine Python-Bibliothek vor: Selenium. Die in diesem Artikel verwendete Version ist 2.44.0
Installieren Sie sie zuerst:
pip install -U selenium
Im Folgenden werden drei Beispiele verwendet um die Verwendung zu veranschaulichen:
[Beispiel 0]
Öffnen Sie einen Firefox-Browser
Laden Sie die Seite mit der angegebenen URL-Adresse
from selenium import webdriver browser = webdriver.Firefox() browser.get('http://www.baidu.com/')
[Beispiel 1]
Öffnen Sie einen Firefox-Browser
Laden Sie die Baidu-Homepage
Suchen Sie nach „seleniumhq“
Schließen Sie den Browser
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()
【Beispiel 2】
Selenium WebDriver wird häufig zum Testen von Netzwerkprogrammen verwendet. Hier ist ein Beispiel mit der Python-Standardbibliothek 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)
Das obige ist der detaillierte Inhalt vonBeispiel dafür, wie Python3 dynamisch von JS generierte HTML-Webseiten erfasst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!