Beispiel dafür, wie Python3 dynamisch von JS generierte HTML-Webseiten erfasst

黄舟
Freigeben: 2018-05-18 15:51:35
Original
4638 Leute haben es durchsucht

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
Nach dem Login kopieren

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/')
Nach dem Login kopieren

[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()
Nach dem Login kopieren

【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)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage