我試圖從這個網頁中訪問公告表。該表位于一個 iframe 中,當頁面加載時,其內容在源代碼中是不可見的。只有當我檢查元素 "兩次 "時,表格才會顯示在源代碼中。一旦表格可見,我就可以通過chrome控制臺執行下面的javascript代碼來訪問該表格。
document. getElementsByTagName('html')[0]。 getElementsByTagName('body')[0]/span>。 getElementsByTagName('section')[4]/span>. getElementsByTagName('article')[0]/span>。 getElementsByTagName('div')[2]/span>. getElementsByTagName('announcement_data')[0]. getElementsByTagName('table')[0]/span>。 getElementsByTagName('tbody')[0]/span>.getElementsByTagName('tr')
然而,我正在努力尋找一種方法,使用python和selenium以編程方式使iframe內的元素可見。我已經嘗試切換到iframe,但這并沒有幫助。
seq = driver.find_elements_by_tag_name('iframe'/span>)
print("No of frames present in the web page are: ", len(seq))
iframe = driver.find_elements_by_tag_name('iframe') [0]
driver.switch_to.frame(iframe)
table = driver.execute_script("return document.getElementsByTagName('html')[0].getElementsByTagName('body')[0].getElementsByTagName('section') [4]。 getElementsByTagName('article')[0].getElementsByTagName('div')[2].getElementsByTagName('announce_data')[0].getElementsByTagName('table')[0].getElementsByTagName('tbody')[0].getElementsByTagName('tr') ;")
如果我試圖在我的jupyter筆記本中運行上述代碼,我會得到以下錯誤 -
No of frames present in the web pageare: 4
獲取長度的表的錯誤:串列索引出 的 范圍
如果有任何關于訪問表格的長度和內容的指標,我們將不勝感激。
謝謝你。
uj5u.com熱心網友回復:
你應該能夠以編程方式抓取iframe的URL,然后在Selenium中作為一個新頁面加載。
https://www.asx.com.au/asx/v2/statistics/todayAnns.do是iframe的URL。
要以編程方式進行,請嘗試這樣做:
url = driver.find_element_by_class_name('external-form__iframe default'/span>).get_attribute("src"/span>)
driver.get(url)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/320230.html
標籤:
上一篇:找到特定數量的東西與美麗的湯
下一篇:在搜刮網站時出現重復的結果
