亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 selenium 和 phantomJS 以及 python 在 iframe

使用 selenium 和 phantomJS 以及 python 在 iframe

慕標5832272 2023-07-05 10:05:25
好吧,我卡住了。我使用 selenium 和 PhantomJS 制作了一個小的網頁抓取 python 腳本。我正在處理的頁面在 iframe 文檔中包含我想要的數據,但我的 Web 驅動程序未運行。<main Page Heads etc>   <blah>   <iframe 1 src="src1" ... etc etc>    #document      <tag>      <tag>      <iframe2 src="src2"><iframe2>   <iframe1>   <blah><end of webpage DOM>我想得到src的iframe2. 我嘗試src1通過我的網絡驅動程序運行 URL,但我得到的只是原始頁面 html,而不是加載的網頁元素,iframe2必須由內部的某個腳本創建iframe1,但我無法讓我的網絡驅動程序運行該腳本。有任何想法嗎?這是我在網頁上運行 javascript 來獲取編譯后的頁面 DOM 的方法:from selenium import webdriver self.driver = webdriver.PhantomJS()self.driver.get(url)page = self.driver.page_sourcesoup = BeautifulSoup(page,'html.parser')
查看完整描述

1 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

您無法獲得完整的 page_source。對于iframe,您應該使用以下命令:switch_to.frame(iframe_element),這樣您就可以獲取其中的元素


from selenium import webdriver

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.support import expected_conditions as EC


self.driver = webdriver.PhantomJS()

self.driver.get(url)




WebDriverWait(self._driver, 50).until(

            EC.presence_of_all_elements_located

            ((By.XPATH,

              '//iframe[@id="iframegame"]'))

        )


iframe_element = self.driver.find_element_by_xpath('//iframe[@id="iframegame"]')


self.driver.switch_to.frame(iframe_element)


tag = self.driver.find_element_by_xpath('//tag')

再次返回,您可以使用以下命令獲取 iframe 的外部元素;


self.driver.switch_to.default_content()


查看完整回答
反對 回復 2023-07-05
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號