【发布时间】:2012-02-17 11:12:52
【问题描述】:
我需要使用 python 获取 iframe 的内容。
当网页加载时,它会提交一个请求并在响应中获取 iframe 的内容。当我使用 BeautifulSoup 来获取数据时,它只会给出初始的空白 iframe 内容。也许我收到响应时 iframe 尚未加载。
请帮我获取 iframe 的 HTML 内容。
谢谢....
【问题讨论】:
标签: python html iframe beautifulsoup
我需要使用 python 获取 iframe 的内容。
当网页加载时,它会提交一个请求并在响应中获取 iframe 的内容。当我使用 BeautifulSoup 来获取数据时,它只会给出初始的空白 iframe 内容。也许我收到响应时 iframe 尚未加载。
请帮我获取 iframe 的 HTML 内容。
谢谢....
【问题讨论】:
标签: python html iframe beautifulsoup
执行初始请求。然后获取 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 引擎的解决方案),我自己没有使用过更复杂的解决方案。
【讨论】: