PYTHON SELENIUM:使用内置Java切换到IFRAME

时间:2017-07-26 09:03:09

标签: javascript python iframe web-scraping

我认为访问IFRAME的最佳方式是切换到它,但我相信这个开关有问题(我相信我这样做是正确的)。我的最终目标是搜索父网站,然后点击"关于"个人排名"这是在IFRAME中。从这里,我想在点击获取实际数据表后加载源。有人可以帮助我点击"个人排名"这样我就可以获得数据表了。

链接:Road Ranking

在此您将看到一个屏幕截图,突出显示的是我尝试导航到的内容,加载后加载并返回数据表。 Shows the Link I am trying to Click On

以下是我一直在使用导航的代码,但是,页面源的打印似乎不包含我想要导航的信息。

from selenium import webdriver
url='http://www.uci.ch/road/ranking'
browser=webdriver.Chrome(executable_path='fill me out')
browser.get(url)
element=browser.switch_to.frame(browser.find_element_by_tag_name('iframe'))
browser.switch_to.default_content()
print(browser.page_source)

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

如果有人读到这个并发现直接链接到嵌入式IFRAME是不好的做法请告诉我,否则它确实有用......

我可以使用以下字典直接链接到网站中嵌入的IFRAME:

urls={ 'UCI World Ranking':['https://dataride.uci.ch/iframe/RankingDetails/1?disciplineId=10&groupId=1&momentId=19264&disciplineSeasonId=19&rankingTypeId=1&categoryId=22&raceTypeId=0'], 'UCI World Tour':['https://dataride.uci.ch/iframe/RankingDetails/7?disciplineId=10&groupId=3&momentId=19291&disciplineSeasonId=19&rankingTypeId=1&categoryId=22&raceTypeId=0'], 'UCI Africa Tour':['https://dataride.uci.ch/iframe/RankingDetails/2?disciplineId=10&groupId=7&momentId=19265&disciplineSeasonId=19&rankingTypeId=1&categoryId=22&raceTypeId=0'], 'UCI American Tour':['https://dataride.uci.ch/iframe/RankingDetails/3?disciplineId=10&groupId=8&momentId=19266&disciplineSeasonId=19&rankingTypeId=1&categoryId=22&raceTypeId=0'], 'UCI Asia Tour':['https://dataride.uci.ch/iframe/RankingDetails/4?disciplineId=10&groupId=9&momentId=19267&disciplineSeasonId=19&rankingTypeId=1&categoryId=22&raceTypeId=0'], 'UCI Europe Tour':['https://dataride.uci.ch/iframe/RankingDetails/5?disciplineId=10&groupId=10&momentId=19268&disciplineSeasonId=19&rankingTypeId=1&categoryId=22&raceTypeId=0'], 'UCI Oceania Tour':['https://dataride.uci.ch/iframe/RankingDetails/6?disciplineId=10&groupId=11&momentId=19269&disciplineSeasonId=19&rankingTypeId=1&categoryId=22&raceTypeId=0'] }