csu_小王子 2016-08-18 11:53 采纳率: 0%
浏览 932
已采纳

chrome保存网页的一个机制问题求助

    最近在做一个爬虫,用手机新浪做实验,抓取sina.cn,但是抓取下来后用手机打开发现页面对不齐。后来用chrome打开sina.cn并保存网页,比对自己下载的首页html文件,发现如下奇怪问题:
    chrome保存sina.cn的时候,如果网页类型选择“仅html”,那么跟我抓取的网页内容是一致的,并且下载的html头部标签的结尾处如下:
 <script src="http://mjs.sinaimg.cn/wap/online/home/v7/dest/js/config.js?t=247322956"></script>
<script src="http://mjs.sinaimg.cn/wap/online/public/newLoader/loader.min.js?v=0.3"></script>
<script>load.css();</script>
</head>
    如果网页保存类型为“全部网页”,那么下载的html文件头部标签的结尾处为:
<script src="./手机新浪网1_files/config.js"></script>
<script src="./手机新浪网1_files/loader.min.js"></script>
<script>load.css();</script>
<link href="./手机新浪网1_files/home-b000f9732d.min.css" rel="stylesheet">
<link href="./手机新浪网1_files/main.css" rel="stylesheet" type="text/css">
</head>
    也就是说,采用保存全部网页的时候,html文件头部会多出两个“link”标签,当把这两个标签添加到我抓下来的sina首页html中的时候,就可以正常打开网页了,所以我想请问:
    (1)为什么chrome采用这两种不同的保存方式会使得这个html文件存在差别?
    (2)如果我希望自己抓取的网页能够像chrome采用保存整个网页时的方式一样,即下载下来的网页存在后面的那两个.css文件,该怎么做?
    请懂这方面的达人不吝赐教,十分感谢!
  • 写回答

2条回答 默认 最新

  • Go 旅城通票 2016-08-18 13:51
    关注

    全部保存就是将js生成的内容一起保存了,仅html就是查看源代码得到的那些内容,不包含js生成,和服务端xhr对象请求后得到的内容一样

    你要获取js动态生成或者加载的内容,需要用webbrowser装载网页后获取所有js解析生成的代码才行,这就是为什么搜索引擎搜索不到js动态加载内容,不利于seo的问题,因为用的是服务器端xhr获取内容,不是webbrowser解析后的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000