我需要使用python获取iframe的内容。
在网页加载时,它会提交请求并在响应中获取iframe的内容。当我使用BeautifulSoup获取数据时,它只给出了初始的空白iframe内容。也许iframe没有加载到那时我得到了回复。
请帮助我获取iframe的HTML内容。
感谢....
答案 0 :(得分:1)
执行初始请求。然后获取iframe的源URL并执行另一个请求以获取iframe的内容。只需检查是否需要通过请求传递任何变量。
Beautifulsoup不会执行您从请求中获取的任何代码。根据页面的复杂程度,您可以模拟页面在浏览器中加载时发生的情况(比如解析一些javascript并使用该信息)。
实施例
<html>
...
<script>
$(document).ready(function() {
$("iframeID").src = "http://addr.com/page.html"
});
</script>
...
<iframe id="iframeID"/>
...
</html>
在这种情况下获取iframe的来源将不方便,但可能。如果javascript做了奇怪而奇妙的事情,那就变得更难了。如果javascript在一个单独的文件中,那么你必须去获取它。
如果事情变得太复杂,请查看另一个抓取解决方案(运行整个javascript引擎的解决方案),我自己没有使用任何更复杂的东西。