使用python加载iframe的内容

时间:2012-02-17 11:12:52

标签: python html iframe beautifulsoup

我需要使用python获取iframe的内容。

在网页加载时,它会提交请求并在响应中获取iframe的内容。当我使用BeautifulSoup获取数据时,它只给出了初始的空白iframe内容。也许iframe没有加载到那时我得到了回复。

请帮助我获取iframe的HTML内容。

感谢....

1 个答案:

答案 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引擎的解决方案),我自己没有使用任何更复杂的东西。