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条)

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?