我最初的任务是将多个科学出版物下载为 html 文件。目前我的script在 chrome 中下载文件,但在 firefox 中下载文件。但这不是我的问题。
如果您看到下载的html源代码,您会发现并非所有内容都已下载。下载的 html 文件中仅显示部分内容。这是我的问题。为什么我无法获取下载的 html 文件中的整个 html 文档内容。我要下载的文件是这个
var links = [
'http://www.sciencedirect.com/science/article/pii/S2078152015000516'
];
我认为可能是因为 CORS 问题。但是,在执行 CORS 脚本后,它仍然在responseText中显示部分下载的内容。
如有任何帮助,我们将不胜感激。
另外,如果有人可以告诉我为什么在 Firefox 中,脚本不会下载文件而是将我带到 URL。
最佳答案
您无法下载整个页面的原因是页面只加载了一半,其余部分会在您向下滚动时动态添加。
因此,当您尝试下载页面时,您只会收到最初加载的一半,而没有动态部分。
由于它是使用 javascript 完成的,因此这个特定网站为您提供了一个替代方案,以防您禁用了 javascript 并且不想/无法启用它(就像使用阅读器一样):
如果您查看页面源代码,您可以在正文的最开头找到以下消息框:
<div class="ua_btn" role="region" aria-label="screen reader compatability">
<a role="button" rel="nofollow" href="http://www.sciencedirect.com/science/article/pii/S2078152015000516?np=y">
Screen reader users, click here to load entire article
</a>
This page uses JavaScript to progressively load the article content as a user scrolls.
Screen reader users, click the load entire article button to bypass dynamically loaded article content.
</div>
这里为您提供了一个带有查询部分的链接“np=y”
,它会覆盖动态加载并立即初始化整个页面:
http://www.sciencedirect.com/science/article/pii/S2078152015000516?np=y
使用此链接下载文章即可。
火狐浏览器:
正如评论中提到的,由于潜在的安全风险,Firefox 在设计上不支持 CORS 下载。更多关于它可以找到Here
关于javascript - 无法访问下载的 html 文件的全部内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35411294/