如何跨域获取一个网页(如:百度)中的源码?

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/cblstc/article/details/90517215

如何跨域获取一个网页(如:百度)中的源码?

前言

写这篇博文原因有俩:一、快月底了,还没输出一篇博文;二、今天遇到个对我很有启发的问题,记录一下,以飨读者。
需求是:在一个页面中嵌入另一个页面,并且自适应高度。

各种尝试

iframe嵌入html页面
正常人接到这个需求马上想到使用iframe,以前的项目也是用iframe,而且没有任何障碍,至于自适应高度,只需要在iframe的内容全部加载完毕后,去获取iframe内容的高度,最后在父容器中设置高度
但是,这个需求嵌入的页面和父页面涉及了跨域。网上的解决办法无非就是使用html的postMessage进行父页面和子页面的通信,这种做法有个前提,就是你有修改子页面的权限。由于页面是另一个项目提供的,我没有权限去修改,故这个尝试fail…

ajax请求html页面,获取html的源码,然后嵌入父页面
这个问题就可以概括为本博客的题目。那百度网来说,我想获取百度的网页源码,怎么获取?本以为使用ajax就可以很轻松的获取源码,结果还是遇到了跨域问题。使用jsonp会返回parseError… 然后看到知乎的一个问题:JavaScript 怎么跨域获取 iframe 中的内容?
很多大佬都没有解决办法,直接死心了~~

山重水复疑无路,柳暗花明又一村

难道就没有办法了吗?我灵机一动,既然前端没法获取html内容,那么后端可以吗?答案是肯定的,而且非常简单,使用HttpUrlConnection就可以轻松获取.

总结

这篇博客的目的主要不是记录问题,而是有感而发,引用名人罗丹的话:换个角度看问题,生命会展现出另一种美。生活中不是缺少美,而是缺少发现。.

猜你喜欢

转载自blog.csdn.net/cblstc/article/details/90517215