如果您想直接进入问题,请一直跳到代码后面的粗体和斜体问题。
介绍:
我在使用 wget 和 html 文件时遇到问题。我使用的是 Ubuntu 15.10。
我正在尝试从数据库收集数据,但它没有使用“get”搜索,而是使用“post”。这仅仅意味着我没有可用于 wget 的 URL。
我创建了 html 文件来通过“post”方法进行搜索,以绕过网站的“get”限制。这意味着它加载初始 html 文件,并且由于它使用“post”进行搜索,因此我想要 wget 下载的内容需要一段时间才能加载。
我知道 wget 通过在 html 文件中搜索 http 链接来工作,但是有没有办法让 wget 让 html 页面加载一两秒,然后继续下载页面。
代码:
以下是充当我想要的页面链接的 html 代码:
<form name="PrimarySearch" id="PrimarySearch" action="http://www.dec.ny.gov/cfmx/extapps/derexternal/spills/details.cfm?pageid=2" method="post" onsubmit="return _CF_checkPrimarySearch(this)">
<p>
There are two ways to search the database: by spill number or by other search criteria.
Entering a spill number will provide the full record for one spill.
Entering other search criteria will provide a list of spills that meet the criteria,
with partial information about each.
</p>
<div>
<label for="spill_num" id="spill_num">
<strong>Search method #1:</strong> Enter a spill number:
</label>
<script type="text/javascript">
<!--
document.write('<input type="hidden" name="bjavascriptEnabled" value="1">');
-->
</script>
<input name="spill_num" id="spill_num" type="text" value="1409515"/>
<input type="hidden" name="pageID" value="2">
<input type="Submit" value="Submit">
</div>
</form>
<script>document.getElementById('PrimarySearch').submit();</script>
所以如果我运行这个 html 文件获取和-我,它会在html代码,甚至不让 html 文件运行。
问题:
我可以让wget使用我的html文件作为url并加载它来下载它吗?
如果我能尽快回复,我将不胜感激,因为我需要尽快提供这些数据。
谢谢!
豪瓦龙
答案1
非常感谢@JeffSchaller,他提到了 --post-file 和 --post-data,解决了整个问题。
我可以使用通用的“post”方法页面(http://www.dec.ny.gov/cfmx/extapps/derexternal/spills/details.cfm?pageid=2) 要得到获取输入我想要访问的值,但我无法通过站点搜索阻止的“获取”方法来访问该值。我放弃了之前使用的 html 代码获取不处理 html 文件。
代码:
免责声明:我还没有尝试过没有 --no-parent、--convert-links 和 --html-extension 的 wget,但是其中一个、一些或全部对我有帮助获取页面作为本地 html 文件
wget --no-parent --convert-links --html-extension --post-data 'spill_num=1409515' http://www.dec.ny.gov/cfmx/extapps/derexternal/spills/details.cfm?pageid=2
这会将页面下载为本地 html 文件。解决了我可以获得页面但未格式化、将文件呈现为空白的问题。
豪瓦龙