我认为访问IFRAME的最佳方式是切换到它,但我相信这个开关有问题(我相信我这样做是正确的)。我的最终目标是搜索父网站,然后点击"关于"个人排名"这是在IFRAME中。从这里,我想在点击获取实际数据表后加载源。有人可以帮助我点击"个人排名"这样我就可以获得数据表了。
链接:Road Ranking
在此您将看到一个屏幕截图,突出显示的是我尝试导航到的内容,加载后加载并返回数据表。
以下是我一直在使用导航的代码,但是,页面源的打印似乎不包含我想要导航的信息。
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)
非常感谢任何帮助!
答案 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']
}