网页爬虫 - Python+Selenium+PhantomJs爬虫,如何取得新打开页面的源码?
高洛峰
高洛峰 2017-04-18 10:21:55
0
2
810

我在做一个python爬虫,使用了selenium库和phantomjs浏览器。我在一个网页中触发了一个click事件打开了一个新的网页,然后我用browser.page_source得到的却是原来那个网页非新打开网页的源码,请问我该如何取得新打开页面的源码呢?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
黄舟

Si le lien ouvre un nouvel onglet, votre pilote utilisera toujours la fenêtre actuelle par défaut,

Alternativement, vous pouvez passer un « handle de fenêtre » à la méthode « switch_to_window() » Sachant cela, il est possible de parcourir chaque fenêtre ouverte comme ceci :

for handle in driver.window_handles:
    driver.switch_to_window(handle)

Par exemple, si votre navigateur a plusieurs onglets, alors window_handles enregistre les objets d'instance correspondant à ces onglets, donc si vous n'avez qu'une seule page Web ouverte actuellement, alors la page nouvellement ouverte est window_handles [1]
Après le changement sur cette page, récupérez le code source.

Peter_Zhu

Si elle est ouverte dans la fenêtre actuelle, il est possible que la nouvelle page n'ait pas encore été chargée et que l'URL et les données de la nouvelle page ne puissent pas être obtenues d'ici là. Vous pouvez utiliser attendre ici et définir certaines conditions pour. assurez-vous que la nouvelle page est chargée avant de continuer, le code est le suivant :

from selenium.webdriver.support.ui import WebDriverWait
# 等待新页面生成
WebDriverWait(self.browser, 5).until(
    expected_conditions.presence_of_element_located((By.ID, "username")
    )
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal