首页 > 解决方案 > 如何使用 linux 工具下载输入到代码路径中的文本?

问题描述

我有一个在线文本编辑器 coderpath: 的链接https://coderpad.io/MY_ID

在此处输入图像描述

有权访问该链接的用户可以在此处键入文本,一个用户键入的文本将对网络上的所有用户可见(类似于 Google Docs)。

我想定期下载使用 linux shell 在那里键入的最新文本,但是一个简单的命令

wget "https://coderpad.io/MY_ID" -O text.txt

下载一些包含我输入的文本的 HTML 文件。

由于我的浏览器在我的屏幕上显示文本,我假设浏览器已经从网上下载了它,因此应该有一种方法可以再次下载它并将其保存到我自己的文本文件中。怎么样

标签: htmllinuxwget

解决方案


您的wget "https://coderpad.io/MY_ID" -O text.txt命令未下载您在 coderpad 中键入的代码的原因是该命令实际上正在下载下图中描述的不同内容:

在此处输入图像描述

删除当前会话的cookiehttps://coderpad.io/MY_ID或在新浏览器中键入,您还将看到此图像而不是预期的代码。

在页面中输入请求的名称并单击Go后,浏览器会在几个步骤后为该网页存储新的cookie。与此问题相关的主要 cookie 是:

Cookie name             | Cokie value example | Explanation
pad_7JJWMNDA_username   | Grace Hopper        | Name entered into the bar

对于下一个刷新页面的请求,浏览器将向嵌入了此 cookie的网站发送 HTTP 请求。通过检查 cookie 值,服务器将决定返回预期的代码而不是“输入您的姓名”请求。

理论上,将适当的 cookie 值作为额外参数添加到wget命令应该使服务器返回预期的代码。由于浏览器和服务器之间交换了多个隐藏的请求和响应,我没有成功以这种方式下载代码。这些隐藏的请求使整个下载过程复杂化。

但是,对我有用的解决方法如下:

  1. 从 下载自动 HAR 扩展https://github.com/Aloisius/autohar。HAR 基本上是包含内容的浏览器选项卡活动日志。

  2. 在所有文件中更改max_entries: 100为。max_entries: 1这告诉在每次页面刷新后(而不是在 100 次页面刷新后)下载 HAR。

  3. 将此修改后的扩展安装到Chrome浏览器中。

  4. 通过单击 CTRL + SHIFT + I打开新选项卡并打开该选项卡的开发人员工具。

  5. 现在,每当您在此特定选项卡中刷新页面时,HAR 文件都会下载到您的~/Downloads文件夹中。

  6. 该 HAR 文件将包含感兴趣的自定义代码。然后,您可以使用grep
    仅提取感兴趣的代码并过滤掉日志的其余部分。


推荐阅读