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

我的主要html页面上有一个iframe,我需要获取其中的文字Code: LWBAD

查看图片以获得更好的理解:

http://img3.mukewang.com/60ac9c88000165e012890620.jpg

贝娄是我的主要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 BeautifulSoup

from selenium import webdriver

import time

import html5lib


driver_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的原因


慕桂英546537
浏览 404回答 2
2回答

呼如林

试试这个:iframe = driver.find_elements_by_tag_name('iframe')for i in range(0, len(iframe)):&nbsp; &nbsp; f = driver.find_elements_by_tag_name('iframe')[i]&nbsp; &nbsp; driver.switch_to.frame(i)&nbsp; &nbsp; #&nbsp; your work to extract link&nbsp; &nbsp; text = driver.find_element_by_tag_name('body').text&nbsp; &nbsp; print(text)&nbsp; &nbsp; driver.switch_to_default_content()

一只斗牛犬

你应该用iframe = driver.find_elements_by_tag_name('iframe')[0]driver.switch_to.frame(iframe)&nbsp;#&nbsp; your work to extract linkdriver.switch_to_default_content()用于多个网址find_elements_by_tag_name将返回一个数组。所以用于循环iframe = driver.find_elements_by_tag_name('iframe')for i in iframe:&nbsp; &nbsp; driver.switch_to.frame(i)&nbsp; &nbsp; #&nbsp; your work to extract linkdriver.switch_to_default_content()只获取文字用text = driver.find_element_by_tag_name('body').text后 driver.switch_to.frame(i)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python