selenium處理iframe下 #document 標簽


 

使用selenium處理html的時候,遇到通過“iframe”標簽實現的網頁嵌套了,這個沒有問題。但是,仔細再看,就發現,“iframe”標簽下還有個#document==0,有點不講武德。如圖:

 

 

 

各種查資料,沒有找到有價值的信息。

 

解決方案1:

  最后我就直接在html中把 “#document” 這行給刪了,然后就正常了。

解決方案2:

  遇到了這篇文章: https://www.pythonf.cn/read/159594, 感謝大佬指點。

  

  操作流程是:

    進入frame框架內,獲取frame框架頁面源碼,(解析frame源代碼),退出frame框架

  具體代碼:

from selenium import webdriver
driver = webdriver.Chrome()
url = XXXXXXXXXXX  #自己把地址補充
driver.get(url)
#############流程1
# 通過switch_to.frame進入frame框架頁面,有下面四種情況
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])  # 1.用WebElement對象來定位,發現所有iframe,並把第一個賦值

# driver.switch_to.frame("frame1")  # 2.用id來定位
# driver.switch_to.frame("myframe")  # 3.用name來定位
# driver.switch_to.frame(0)  # 4.用frame的index來定位,第一個是0

##############流程2
frame_html = driver.page_source   # 響應為 str 格式
# 切換為frame框架頁面后,可以通過BeatifulSoup等工具解析frame_html網頁代碼

##############流程4
# 從frame中切回主文檔(switch_to.default_content())
driver.switch_to.default_content()

html = driver.page_source
# 這里的html變回主頁面的了

 

這個套操作下來,嵌套的html內容就拿到了,因為  響應 frame_html 為 str 格式,

但是,我最初的目的是:想檢測這個嵌套的html是多長時間加載完的,最終還是沒有找到方法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM