⑴ 用python怎么得到网页中iframe的源代码
简单的做个例子,框架路径可以自己修改,调用像网络等网站时无法读取其中源码,涉及到一些安全问题,所以路径要求是合法的允许访问的路径 <script> function GetFrameInnerHtml(objIFrame) { var iFrameHTML = ""; if (objIFrame.contentDocument) { //针对netscape iFrameHTML = objIFrame.contentDocument.innerHTML; } else if (objIFrame.contentWindow) { // 针对ie5.5和ie6 iFrameHTML = objIFrame.contentWindow.document.body.innerHTML; } else if (objIFrame.document) { // For IE5 iFrameHTML = objIFrame.document.body.innerHTML; } return iFrameHTML; } </script> <iframe id="ifa" src="1.html" ></iframe> <input type="button" value="click" onclick="alert(GetFrameInnerHtml(document.getElementById('ifa')))"/>
⑵ python selenium 获取不到iframe
贴页面代码出来看看 文本形式
⑶ Python提取网页链接和标题
提取所有链接应该用循环:
urls = driver.find_elements_by_xpath("//a")
for url in urls:
print(url.get_attribute("href"))如果get_attribute方法报错应该是没有找到a标签对象,如果确定是有的话,可能是页面加载比较慢还没加载出来,selenium默认是不会等待对象出现的,需要在找对象前加一些等待时间;另外如果页面上有iframe的话需要先切换进去才能找到里面的对象。
⑷ python+selenium遍历iframe并且查找指定元素
在使用Python+Selenium时,对于被包含在iframe中戚陆的元素,我们需要先切换到iframe,然后才能查找其中的元素。下面是使用Python+Selenium实现遍历iframe并查找指定元素的示例代码:
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome() # 启动Chrome浏高圆顷览器
# 打开要测试的网页
driver.get('http://www.example.com')
# 查找以“iframe”为tag name的元素
iframes = driver.find_elements(By.TAG_NAME, 'iframe')
# 遍历所有的iframe
for iframe in iframes:
# 切换到当前iframe
driver.switch_to.frame(iframe)
try:
# 等待要查找的元素加载完成
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, 'element_id'))
)
# 你的逻辑代码,比如获取元素的文本内容
print(element.text)
except:
# 没有找到元素,继续下一个iframe
continue
# 切换回父级iframe或者主文档框架
driver.switch_to.default_content()
# 关闭浏览器
driver.quit()
```
以上代码中,我们首先通过find_elements()方法查找所有的iframe元素,并依次遍历,然后通过switch_to.frame()方法切换到当前的iframe。接着,使用WebDriverWait()方法等待要查找的元素加载完成,并使用presence_of_element_located()方法指定要查找的元素的查找方式(这里使用的是id为“腔滚element_id”的元素),其余逻辑代码参照注释说明。最后使用switch_to.default_content()方法返回主文档框架或父级iframe。
⑸ 用python selenium提取网页中的所有<a>标签中的超级链接地址
提取所有链接应该用循环:
urls=driver.find_elements_by_xpath("//a")
forurlinurls:
print(url.get_attribute("href"))
如果get_attribute方法报错应该是没有找到a标签对象,如果确定是有的话,可能是页面加载比较慢还没加载出来,selenium默认是不会等待对象出现的,需要在找对象前加一些等待时间;另外如果页面上有iframe的话需要先切换进去才能找到里面的对象。
⑹ 用python写爬虫程序怎么调用工具包selenium
from selenium import webdriver # 用来驱动浏览器的
from selenium.webdriver import ActionChains # 破解滑动验证码的时候用的 可以拖动图片
from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys # 键盘按键操作
from selenium.webdriver.support import expected_conditions as EC # 和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait # 等待页面加载某些元素
⑺ Python爬虫期末试题(编程题答案)
from seleniumimport webdriver
import time
from selenium.webdriverimport ActionChains
driver = webdriver.Chrome()
driver.get("https://accounts.douban.com/passport/login")
# 点击密码登录山中销
driver.find_element_by_class_name('account-tab-account').click()
# 定位账户 # 输入内容
driver.find_element_by_id('username').send_keys('2331566038')
driver.find_element_by_id('password').send_keys('*********')
# 点击登录
driver.find_element_by_link_text('登录豆瓣').click()
# 进入内嵌滑动验证页面
iframe = driver.find_element_by_id('tcaptcha_iframe')
driver.switch_to_frame(iframe)
element = driver.find_element_by_xpath('//*[@id="tcaptcha_drag_thumb"]')
ActionChains(driver).click_and_hold(on_element=element).perform()
ActionChains(driver).move_to_element_with_offset(to_element=element,xoffset=180,yoffset=0).perform()
driver.save_screenshot('豆逗游瓣.png')
time.sleep(5)
driver.quit()
import urllib.request
import urllib.parse
url ="http://www..com/s"
word = {"wd":"浙江大学培旅"}
word = urllib.parse.urlencode(word)
new_url = url +"?" + word
header = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36"
}
resquest = urllib.request.Request(new_url,headers = header,)
response = urllib.request.urlopen(resquest)
html = response.read().decode('utf-8')
print(html)
⑻ python爬虫 求指点 查看源代码有个# 后面内容爬取不到
不知道你是用框架还是用 Selenium 爬的内容, iframe 里的内容实际上就是另一个网页了。
你只是爬它的源码是爬不到的, 你要提取 iframe 里的 src 所指向的网址, 重新打开它, 然后才爬他的源码。 或者如果你用框架, 里面应该有另外提供方法, 读取 iframe 中的内容
⑼ 用Python怎么得到网页中iframe的源代码
想得到网易云音乐 听见好时光中的专桥猛和辑信息(歌名及歌曲编号),但使用urllib2时urlopen出来的源代码为网页源代码,而专辑信息是在iframe中的,无法在网页源代码中得到。
请问要怎么获取iframe的源代码,或者怎么直接获取到专辑的信息
from selenium import webdriverbrowser = webdriver.Chrome()browser.get("om/#/album?id=145852")browser.switch_to_frame('g_iframe')print('专辑名敏盯知纯字:', browser.find_element_by_class_name('f-ff2').text)for each in browser.find_elements_by_css_selector('a[href^=\/song]'):
print("歌曲名字:",each.text)
输出:
专辑名字: Better Than a Fairy Tale
歌曲名字: Messenger
歌曲名字: Way of the World
歌曲名字: Princess
歌曲名字: Smiling Down On Me
歌曲名字: Evergreen
歌曲名字: Never Never Land
歌曲名字: Better Than a Fairy Tale