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

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

高洛峰
高洛峰

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

membalas semua(2)
黄舟

Jika pautan membuka tab baharu, pemandu anda masih akan menggunakan tetingkap semasa secara lalai,

Sebagai alternatif, anda boleh menghantar "pemegang tetingkap" kepada kaedah "switch_to_window()" Menyedari perkara ini, anda boleh mengulangi setiap tetingkap yang terbuka seperti itu:

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

Sebagai contoh, jika penyemak imbas anda mempunyai beberapa tab, maka window_handles menyimpan objek contoh yang sepadan dengan tab ini, jadi jika anda hanya mempunyai satu halaman web yang dibuka pada masa ini, maka halaman yang baru dibuka ialah window_handles [1]
Selepas bertukar ke halaman itu, dapatkan kod sumber.

Peter_Zhu

Jika ia dibuka dalam tetingkap semasa, ada kemungkinan halaman baharu belum dimuatkan lagi, dan url dan data halaman baharu itu tidak boleh diperolehi pada masa itu. Anda boleh menggunakan tunggu di sini dan tetapkan beberapa syarat untuk pastikan halaman baharu dimuatkan sebelum meneruskan , kodnya adalah seperti berikut:

from selenium.webdriver.support.ui import WebDriverWait
# 等待新页面生成
WebDriverWait(self.browser, 5).until(
    expected_conditions.presence_of_element_located((By.ID, "username")
    )
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan