为了账号安全,请及时绑定邮箱和手机立即绑定

使用Python / Selenium访问iframe中的链接并获取网址

使用Python / Selenium访问iframe中的链接并获取网址

慕桂英546537 2021-05-14 18:15:01
我的主要html页面上有一个iframe,我需要获取其中的文字Code: LWBAD。查看图片以获得更好的理解:贝娄是我的主要html页面源文件,其中包含iframe:<td class="centerdata flag"><iframe style="width: 200px; height: 206px;" scrolling="no" src="https://www.example.com/test/somewhere" ></iframe></td>重定向链接(iframe页面)具有此html源<body><a href="http://www.test2.com" target="_blank"><img src="https://img2.test2.com/LWBAD-1.jpg"></a><br/>Code: LWBAD到目前为止,我可以从我的主要html页面获取完整的页面源代码。from bs4 import BeautifulSoupfrom selenium import webdriverimport timeimport html5libdriver_path = '/usr/local/bin/chromedriver 2'driver = webdriver.Chrome(driver_path)driver.implicitly_wait(10)driver.get('http://example.com')try:    time.sleep(4)    iframe = driver.find_elements_by_tag_name('iframe')    driver.switch_to_default_content()    output = driver.page_source    print (output)finally:    driver.quit();*无法从我的网络外部访问网址,这就是我使用example.com的原因
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

试试这个:


iframe = driver.find_elements_by_tag_name('iframe')

for i in range(0, len(iframe)):

    f = driver.find_elements_by_tag_name('iframe')[i]

    driver.switch_to.frame(i)

    #  your work to extract link

    text = driver.find_element_by_tag_name('body').text

    print(text)

    driver.switch_to_default_content()


查看完整回答
反对 回复 2021-05-25
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

你应该用


iframe = driver.find_elements_by_tag_name('iframe')[0]

driver.switch_to.frame(iframe)

 #  your work to extract link

driver.switch_to_default_content()

用于多个网址


find_elements_by_tag_name将返回一个数组。所以用于循环


iframe = driver.find_elements_by_tag_name('iframe')

for i in iframe:

    driver.switch_to.frame(i)

    #  your work to extract link

driver.switch_to_default_content()

只获取文字



text = driver.find_element_by_tag_name('body').text

后 driver.switch_to.frame(i)


查看完整回答
反对 回复 2021-05-25
  • 2 回答
  • 0 关注
  • 403 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信