如果用php语言获取新浪微博某一网址的源码?
我发现用常规的方法获取到的只是sinavistorsystem这一句话.如何获取完整的源码.例如这个网址http://weibo.com/p/10050518932897...
我发现用常规的方法获取到的只是 sina vistor system这一句话.如何获取完整的源码.
例如这个网址http://weibo.com/p/1005051893289714/
怎么用php获取它的源码? 展开
例如这个网址http://weibo.com/p/1005051893289714/
怎么用php获取它的源码? 展开
1个回答
展开全部
我试着用file_get_contents()来获取了一下,是能获取到源码的逗纯。
var_dump((file_get_contents('http://weibo.com/p/1005051893289714/')));
不过确实显示的如你说的那样,只有页面title显拍桥示为“Sina Visitor System”,但是这个时候,因为使用了var_dump()来打印,可以看到页面上还显示了:string(5405) " "。
这说明file_get_contents返回了还是比较多的内容,再来查看一下源代码,发袭指猛现返回的是一些js语句,这些语句当然是不会显示在页面上的,里面还有外部js,那么你获得源码之后,因为js路径不对(它使用的是相对地址),所以也会引起js报错,而导致js没有运行:
<script type="text/javascript" src="/js/visitor/mini.js"></script>
正常情况下,我们打开http://weibo.com/p/1005051893289714/这个网页之后,看到的其实是这个js执行之后的跳转页面。
更多追问追答
追问
有解决办法吗?我刚学php,不是很懂
追答
如果你只是需要这个页面的源代码,那么file_get_contents就能获取到。
如果你是想要这个页面的源代码,并且能运行,能访问到相同的页面,那么,用str_replace替换一下返回的代码中的相对地址就行了:
echo str_replace('"/js/visitor/mini.js"','"http://passport.weibo.com/js/visitor/mini.js"',file_get_contents('http://weibo.com/p/1005051893289714/'));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询