html - 如何使用 linux 工具下载输入到代码路径中的文本?
问题描述
我有一个在线文本编辑器 coderpath: 的链接https://coderpad.io/MY_ID
:
有权访问该链接的用户可以在此处键入文本,一个用户键入的文本将对网络上的所有用户可见(类似于 Google Docs)。
我想定期下载使用 linux shell 在那里键入的最新文本,但是一个简单的命令
wget "https://coderpad.io/MY_ID" -O text.txt
下载一些不包含我输入的文本的 HTML 文件。
由于我的浏览器在我的屏幕上显示文本,我假设浏览器已经从网上下载了它,因此应该有一种方法可以再次下载它并将其保存到我自己的文本文件中。怎么样?
解决方案
您的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
命令应该使服务器返回预期的代码。由于浏览器和服务器之间交换了多个隐藏的请求和响应,我没有成功以这种方式下载代码。这些隐藏的请求使整个下载过程复杂化。
但是,对我有用的解决方法如下:
从 下载自动 HAR 扩展
https://github.com/Aloisius/autohar
。HAR 基本上是包含内容的浏览器选项卡活动日志。在所有文件中更改
max_entries: 100
为。max_entries: 1
这告诉在每次页面刷新后(而不是在 100 次页面刷新后)下载 HAR。将此修改后的扩展安装到
Chrome
浏览器中。通过单击 CTRL + SHIFT + I打开新选项卡并打开该选项卡的开发人员工具。
现在,每当您在此特定选项卡中刷新页面时,HAR 文件都会下载到您的
~/Downloads
文件夹中。该 HAR 文件将包含感兴趣的自定义代码。然后,您可以使用
grep
仅提取感兴趣的代码并过滤掉日志的其余部分。
推荐阅读
- python - AWS 使用 texttract 开始文档分析不起作用
- c++ - 指向指向 char 数组的指针数组的指针
- shell - 如何通过 oozie 工作流从 shell 脚本中的 Hive 获取值?
- angular - 如何选择加密货币的当前价格?从 API (CoinGecko API) 获取带有 ID 的硬币
- oracle - Oracle - DATE 列中的错误日期值
- python - Statsmodels - TypeError:输入类型不支持 ufunc 'isnan'
- c# - 直接显示现有的 CanvasBitmap
- excel - SeriesCollection 上的 Excel VBA 检查图表类型
- excel - Excel - 当匹配不唯一时如何匹配和求和
- java - 正则表达式替换java中的子字符串