2012-02-17 62 views
0

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

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

请帮我获取iframe的HTML内容。

谢谢....

回答

1

做最初的请求。然后获取iframe的源URL并执行另一个请求来获取iframe的内容。只需检查是否需要传递任何变量与请求。

Beautifulsoup不会执行您从请求中获得的任何代码。根据页面的复杂程度,您可能能够模拟页面在浏览器中加载时发生的情况(如解析一些javascript并使用该信息)。

Ex。

<html> 
    ... 
    <script> 
     $(document).ready(function() { 
      $("iframeID").src = "http://addr.com/page.html" 
     }); 
    </script> 
    ... 
    <iframe id="iframeID"/> 
    ... 
</html> 

获取的iframe中源在这种情况下将是不方便的,但可能的。如果javascript确实有点奇怪,那么这会变得更加困难。如果JavaScript是在一个单独的文件中,那么你必须去获取它。

如果事情变得太复杂了,看看另一个解决方案(其中一个是运行整个JavaScript引擎的解决方案),我自己并没有使用任何更复杂的东西。

+0

实际上,该框架有一些隐藏的字段,并且随着html页面加载隐藏字段被提交到源url并在相同的iframe中获取响应。我尝试通过瞄准源网址也..但它提供了隐藏的字段,,,我想获得提交后隐藏的表单行动(也包括隐藏的领域)后出现的内容..... – user1216062 2012-02-17 14:28:14

+0

更新你的问题与信息。也许有人可以帮助你,如果你清楚地描述问题? – dirk 2012-02-21 06:39:25