如果用php语言获取新浪微博某一网址的源码?

我发现用常规的方法获取到的只是sinavistorsystem这一句话.如何获取完整的源码.例如这个网址http://weibo.com/p/10050518932897... 我发现用常规的方法获取到的只是 sina vistor system这一句话.如何获取完整的源码.

例如这个网址http://weibo.com/p/1005051893289714/
怎么用php获取它的源码?
展开
 我来答
zhuanyewenda
2014-12-09 · TA获得超过398个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:160万
展开全部

我试着用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/'));
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式