从 MATLAB Web 浏览器保存 html 页面
Posted
技术标签:
【中文标题】从 MATLAB Web 浏览器保存 html 页面【英文标题】:Saving html page from MATLAB web browser 【发布时间】:2010-04-16 23:37:45 【问题描述】:在this question 之后,我在检索到的页面上收到一条消息“您的浏览器不支持 JavaScript,因此可能缺少某些功能!”
如果我在 MATLAB Web 浏览器中使用 web(url)
打开此页面并接受证书(每个会话一次),则该页面会正确打开。
如何使用脚本保存浏览器中的页面源代码?还是从系统浏览器?或者即使没有浏览器也有办法获取该页面?
url='https://cgwb.nci.nih.gov/cgi-bin/hgTracks?position=chr7:55054218-55242525';
【问题讨论】:
【参考方案1】:据我所知,页面源下载得很好,只要确保在本地打开保存的页面时让 javascript 运行即可。
[...]
<script type='text/javascript' src='../js/hgTracks.js'></script>
<noscript><b>Your browser does not support JavaScript so some functionality may be missing!</b></noscript>
[...]
请注意,您使用的 solution 仅下载没有任何附加内容(图像、.css、.js 等)的网页。
您可以调用wget
来获取包含所有文件的页面:
url = 'https://cgwb.nci.nih.gov/cgi-bin/hgTracks?position=chr7:55054218-55242525';
command = ['wget --no-check-certificate --page-requisites ' url];
system( command );
如果您使用的是 Windows 计算机,则始终可以从 GnuWin32 项目或 many other implementations 之一获取 wget。
【讨论】:
问题是我需要选择一些额外的曲目。然后保存这些设置。浏览器的缓存或 cookie 或会话(传递了一些会话 id),不确定。我可以用浏览器设置它。但是我如何在 wget 之后使用页面呢? 我不确定我是否理解这个问题。您是否尝试传递 POST 数据并使用 cookie/session-cookies?如果是这样,请查看手册:gnu.org/software/wget/manual/html_node/HTTP-Options.html【参考方案2】:保存 cookie 是否足以解决您的问题? wget 可以通过 --keep-session-cookies 和 --save-cookies filename 做到这一点;然后您使用 --load-cookies filename 在后续请求中获取您的 cookie。类似于以下内容(注意我没有从 Matlab 测试过,所以引用等可能不完全正确,但我确实在其他上下文中使用了类似的 shell 构造):
command_init = ['wget --no-check-certificate \
--page-requisites \
--keep-session-cookies \
--save-cookies cookie_file.txt \
--post-data \'user=X&pass=Y&whatever=TRUE\'' \
init_url];
command_get = ['wget --no-check-certificate \
--page-requisites \
--load-cookies cookie_file.txt' \
url];
如果您没有任何发布数据,而是后续获取会更新 cookie,您可以简单地使用 keep 并保存后续获取请求。
【讨论】:
感谢您抽出宝贵时间回答这个老问题。现在几乎不记得我确实解决了这个问题。无论如何,好点。以上是关于从 MATLAB Web 浏览器保存 html 页面的主要内容,如果未能解决你的问题,请参考以下文章