# 求：保存【响应式网页】到本地文件的工具

**URL:** <https://meta.appinn.net/t/topic/30191>\
**Category:** 问题求助\
**Tags:** chrome, web\
**Created:** [2022 年2 月 21 日 13:03 UTC](https://meta.appinn.net/t/topic/30191 "2022-02-21T13:03:04Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![lesliexin](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/l/7feea3/32.png) [@lesliexin](https://meta.appinn.net/u/lesliexin)\
**Post date:** [2022 年2 月 21 日 13:03 UTC](https://meta.appinn.net/t/topic/30191/1 "2022-02-21T13:03:04Z")

</div>

现在有一些网页是响应式的，比如本小众软件论坛，这种网页无论是使用另存为还是打印PDF，或者使用一些诸如SingleFile等扩展，都无法将网页内容完整的保存下来，只会保存当前显示出来的内容。  
所以想求一款可以将此类网页保存下来的工具。  
可以将网页保存为html、mht、mhtml、pdf等，主要是要可以复制网页内容。

---

<div class="post-metadata">

**Author:** ![qhqiii](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qhqiii/32/4785_2.png) [@qhqiii](https://meta.appinn.net/u/qhqiii)\
**Post date:** [2022 年2 月 22 日 02:00 UTC](https://meta.appinn.net/t/topic/30191/2 "2022-02-22T02:00:39Z")

</div>

你可能需要整站下载工具，把相关的依赖文件全部下载到本地，`idm`的 **站点下载** 功能可能有点用

---

<div class="post-metadata">

**Author:** ![Kyun](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/k/e8c25b/32.png) [@Kyun](https://meta.appinn.net/u/Kyun)\
**Post date:** [2022 年2 月 22 日 02:47 UTC](https://meta.appinn.net/t/topic/30191/3 "2022-02-22T02:47:09Z")

</div>

試試保存為PWA，如果網站實現的話，是可以實現一定的離線操作的。

---

<div class="post-metadata">

**Author:** ![lousi](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/lousi/32/19930_2.png) [@lousi](https://meta.appinn.net/u/lousi)\
**Post date:** [2022 年2 月 25 日 10:07 UTC](https://meta.appinn.net/t/topic/30191/4 "2022-02-25T10:07:15Z")

</div>

+1  
我也想请教大家同样的问题！困扰了我很久了！有个叫简~媒的(问题已解决url就删掉了)  
这个网站所有的文章都是这样的， ~~chrome浏览器里直接按F12，看不到任何正文内容。~~ (已更正 其实是我没找对地方，F12能看到正文，谢谢Huhu指点)  
用curl命令去下载，下载不了正文。  
\*\*比如我想用  
\*\*`curl -O https://XXX.html`  
**下载，结果本地得到的一个html文件是个空壳，正文部分是没有的**  
什么idm之类下载工具都不行。  
但是浏览器里save as成html就有正文内容了。  
我不懂网页制作，但是我猜测这种就是题主说的【响应式网页】吧。  
目前我想从这个网站批量下载很多篇文章，网址都整理到一个excel里了，但使用curl不行，一个一个按save as几百页太傻了 求高手支招！

---

<div class="post-metadata">

**Author:** ![Huhu](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/huhu/32/20335_2.png) [@Huhu](https://meta.appinn.net/u/Huhu)\
**Post date:** [2022 年2 月 25 日 10:18 UTC](https://meta.appinn.net/t/topic/30191/5 "2022-02-25T10:18:22Z")

</div>

> [@lousi](#):
>
> chrome浏览器里直接按F12，看不到任何正文内容。

 ![image](https://meta.appinn.net/uploads/default/original/3X/8/a/8a9070fca9338d6a9a2124e3b076b48f93fb31ee.jpeg)

喵喵喵？

---

<div class="post-metadata">

**Author:** ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
**Post date:** [2022 年2 月 25 日 16:04 UTC](https://meta.appinn.net/t/topic/30191/6 "2022-02-25T16:04:57Z")

</div>

SingleFile 可以在选项里面取消勾选【移除用于备选设备屏幕的样式表】，然后保存网页时就能达到满意的效果

---

<div class="post-metadata">

**Author:** ![metadata](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/m/e36b37/32.png) [@metadata](https://meta.appinn.net/u/metadata)\
**Post date:** [2022 年2 月 27 日 09:04 UTC](https://meta.appinn.net/t/topic/30191/7 "2022-02-27T09:04:22Z")

</div>

这应该是lazyload的问题。  
针对本论坛，或者采用类似论坛程序的论坛，可以禁用js之后刷新再保存

---

<div class="post-metadata">

**Author:** ![metadata](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/m/e36b37/32.png) [@metadata](https://meta.appinn.net/u/metadata)\
**Post date:** [2022 年2 月 27 日 13:16 UTC](https://meta.appinn.net/t/topic/30191/8 "2022-02-27T13:16:49Z")

</div>

这跟楼主的问题应该有区别。这个网页正文内容大概是js生成的，所以用curl下载不行，因为没有运行js。

https://player.bilibili.com/player.html?bvid=av92655544&high_quality=1&autoplay=0

[https://www.bilibili.com/video/av92655544/](https://www.bilibili.com/video/av92655544/)

可能得用 selenium ？

---

<div class="post-metadata">

**Author:** ![lousi](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/lousi/32/19930_2.png) [@lousi](https://meta.appinn.net/u/lousi)\
**Post date:** [2022 年2 月 27 日 15:48 UTC](https://meta.appinn.net/t/topic/30191/9 "2022-02-27T15:48:20Z")

</div>

> [@metadata](#):
>
> 这个网页正文内容大概是js生成的，所以用curl下载不行，因为没有运行js。

谢谢！我似乎明白了我的问题和楼主的问题是不一样的，我的问题应该是类似这种的：  
**如何使用curl获取JavaScript加载的动态网页？**  
selenium需要花点时间研究，我打算先搜搜PhantomJS试试。 :hugs:

更新：selenium太复杂了暂时没研究，PhantomJS对付这种网页也不行呦，不过还是学了一招

---

<div class="post-metadata">

**Author:** ![kongqiwai](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/k/eb8c5e/32.png) [@kongqiwai](https://meta.appinn.net/u/kongqiwai)\
**Post date:** [2022 年2 月 27 日 16:16 UTC](https://meta.appinn.net/t/topic/30191/10 "2022-02-27T16:16:37Z")

</div>

数量少，我就用 QQ 截图的 文本识别 ：）

---

<div class="post-metadata">

**Author:** ![qinshou](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/q/9f8e36/32.png) [@qinshou](https://meta.appinn.net/u/qinshou)\
**Post date:** [2022 年2 月 28 日 07:15 UTC](https://meta.appinn.net/t/topic/30191/11 "2022-02-28T07:15:08Z")

</div>

curl默认是get，但是这个网站获取文章是post，你需要模拟一下post，带上两个参数，返回结果是个json  
var param = {materialId: id,mcType:mcType,isCreate:isCreate};  
$.post(“/s/article/materialPreviewDetail”, param, function (result) {  
//log(‘materialPreviewDetail:’+JSON.stringify(result));  
if (result.code == 200) {  
//渲染模板  
var material = result.data;  
articleTitle.html(material.title);  
// 网易号把第一个字变大  
material.content = oneBig(material.content)  
articleContent.html(material.content);

```
        getUserInfo(); // 获取用户相关信息
    }
});

```

};

---

<div class="post-metadata">

**Author:** ![lousi](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/lousi/32/19930_2.png) [@lousi](https://meta.appinn.net/u/lousi)\
**Post date:** [2022 年2 月 28 日 15:30 UTC](https://meta.appinn.net/t/topic/30191/12 "2022-02-28T15:30:03Z")

</div>

> [@qinshou](#):
>
> curl默认是get，但是这个网站获取文章是post，你需要模拟一下post，带上两个参数，返回结果是个json

谢谢！ 我尝试用  
`curl -d "corpusId=UUID&source=" -H "referer:[https://www.l3gt9.com/f/content/corpus/UUID.html](https://www.l3gt9.com/f/content/corpus/UUID.html)" -H "origin: https://www.l3gt9.com" https://www.l3gt9.com/f/content/corpusPreviewDetail -o 1.txt`

 ![image](https://meta.appinn.net/uploads/default/original/3X/e/3/e3fd86a4ec4e2476efa731b7e318605170499388.png)  
 ![image](https://meta.appinn.net/uploads/default/original/3X/7/9/79d61782984572321a65d43671a27203f99d59f7.png)

结果就是你说的json：

 ![image](https://meta.appinn.net/uploads/default/original/3X/3/0/30c5dfa4029eadce91e7a6b9bbad445d85de674f.png)

问题完美解决了！

 ![s2022-03-02_22-46-04](https://meta.appinn.net/uploads/default/original/3X/8/0/80a5288b9891648cf9939a7d13b8e4ffca85a08f.jpeg)

解决关键：这个网站必须用 post, post必须带2个参数corpusId和source， **而且必须用-H带上origin: 和referer:**

太感谢了！  
刚发现楼主不是我，没办法把你的回复设为“解决了问题”

---

<div class="post-metadata">

**Author:** ![qinshou](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/q/9f8e36/32.png) [@qinshou](https://meta.appinn.net/u/qinshou)\
**Post date:** [2022 年3 月 2 日 01:20 UTC](https://meta.appinn.net/t/topic/30191/13 "2022-03-02T01:20:54Z")

</div>

curl -X POST -d “corpusId=5FBEA9F908A4E48EDDF3F26C062BA904&source=” [https://www.l3gt9.com/f/content/corpusPreviewDDetail](https://www.l3gt9.com/f/content/corpusPreviewDDetail)

是post带两个参数corpusid和source，不是curl带两个参数
