Python的urllib2加载有动态js的页面缺少部分js

yu11men 2017-08-03 03:08:03
我这边是以Django作为框架,使用urllib2这个方法来,做一个简单的反向代理工作,使用URLlib2的openurl方法来获取web服务资源,然后返回给客户端浏览器。
现在遇到的问题是,如果openurl要访问的是一个静态页面,那么客户端浏览器的显示没有问题,可是如果openurl访问的是一个复杂的(包含了很多动态js和图片)的页面,当我将urllib2.read()后的数据返回给浏览器时,就会缺失一些js信息,导致浏览器显示的页面出现问题(很明显的没有经过js处理和缺少一些css样式):
import urllib2
def ProxyApi(request):
//加载要访问的页面
response=urllib2.urlopen('http://www.douban.com')
//读取页面全部内容
html=response.read()
//返回给客户端浏览器
return httpresponse(html)
http的请求是先加载页面的主框架。然后浏览器会检测页面里面都有什么图片或者内嵌的js文本,然后会对每一个内嵌的图片和js文本进行一个个的http请求,刚开始我没有处理后续的图片和js请求,所以浏览器只能显示一个主框架的静态页面,后来我对后续的请求也都进行了处理和转发,虽然浏览器能显示大部分信息,但是和使用浏览器直接访问网页对比后,发现使用我的代理中专后的页面还是明显缺少js样式。
是不是要做代理中专不应该使用这些简单的函数,或是有什么解决方法和参考资料的希望大家帮助一下
...全文
302 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yu11men 2017-08-03
  • 打赏
  • 举报
回复
我去,我是用IE浏览器后发现正常了,分析后发现是CSS缺失了,使用谷歌或者火狐,就会出现CSS缺少一部分导致的页面布局不正常,而IE就可以,后来我将谷歌或者火狐不正常的页面保存到本地后,然后本地使用谷歌或者火狐浏览器加载保存后的页面,也可以正常使用,貌似问题出在浏览器访问代理时解析的问题,因为使用谷歌浏览器直接访问web'网页(不通过我的Python代理),页面布局也是正常的;

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧