【问题标题】:Load the contents of an iframe with python使用 python 加载 iframe 的内容
【发布时间】:2012-02-17 11:12:52
【问题描述】:

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

当网页加载时,它会提交一个请求并在响应中获取 iframe 的内容。当我使用 BeautifulSoup 来获取数据时,它只会给出初始的空白 iframe 内容。也许我收到响应时 iframe 尚未加载。

请帮我获取 iframe 的 HTML 内容。

谢谢....

【问题讨论】:

    标签: python html iframe beautifulsoup


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

    【讨论】:

    • 实际上该框架有一些隐藏字段,并且随着 html 页面加载,隐藏字段被提交到源 url 并在同一个 iframe 中获得响应。我也尝试通过定位源网址..但它提供了隐藏字段,,,我想获取提交这些隐藏表单操作后出现的内容(也包括隐藏字段).....
    • 用信息更新你的问题。如果您清楚地描述问题,也许有人可以帮助您?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    相关资源
    最近更新 更多