gpt4 book ai didi

bash - Lynx - 如何在转储网站内容之前延迟下载过程

转载 作者:行者123 更新时间:2023-12-04 04:48:20 25 4
gpt4 key购买 nike

我想使用 保存这个特定网站的全部内容猞猁

http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog.html?url=%2Ftrunk%2Fsrc&range=41818%3A40345&mode=html

我使用了这些命令

webpage="http://build.chromium.org/f/chromium/perf/dashboard/ui/changelog.html?url=%2Ftrunk%2Fsrc&range=41818%3A40345&mode=html"

lynx -crawl -dump $webpage > output

我的输出只是这样:
SVN path: ____________________ SVN revision range: ____________________

预计何时会包含有关错误和评论的所有信息。

在 URL 中,它包含“/trunk/src”和“41818:40345”值,这些值应该放入 SVN路径 SVN 修订范围 然后提交它以获取内容但它没有。

问题:您是否有任何想法“告诉”lynx 在网站呈现其内容时等待一段时间直到完成?

先谢谢了。

最佳答案

这里的问题是网页是由 javascript 函数构建的。使用lynx(或curl,恕我直言更擅长解决基本下载问题)等工具下载此类页面可能会很棘手。为了下载您在该页面上看到的内容,您需要首先加载页面所需的 javascript 文件,然后“就像您是浏览器一样”执行 javascript。该 javascript 将继续请求一些数据,结果是 XML,然后从该数据构建 HTML。

请注意,“网站”不会呈现其数据。您的浏览器呈现数据。或者,更准确地说,您的浏览器应该呈现它,但 lynx 不会,因为它不执行 javascript。

所以你有几个选择。您可以尝试找到可编写脚本的 javascript 感知浏览器(iirc links 执行 javascript,但我不知道如何编写脚本以执行您想要的操作。)

或者你可以作弊。通过使用 Chrom{e,ium} 的“开发人员”工具,您可以查看 javascript 请求的 URL。事实证明,在这种情况下,

http://build.chromium.org/cgi-bin/svn-log?url=http://src.chromium.org/svn//trunk/src&range=41818:40345

所以你可以通过 curl 得到它如下
curl -G \
-d url=http://src.chromium.org/svn//trunk/src \
-d range=41818:40345 \
http://build.chromium.org/cgi-bin/svn-log \
> 41818-40345.xml

XML 数据的格式非常简单(即显然很容易进行逆向工程)。然后你可以使用一个简单的脚本化 xml 工具,比如 xmlstarlet (或任何 XSLT 工具)将 xml 分开并根据需要重新格式化。幸运的是,您甚至可能会在某处找到 xml 的一些文档(或 DTD)。

至少,这就是我将继续的方式。

关于bash - Lynx - 如何在转储网站内容之前延迟下载过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17838357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com