卷曲:下载从动态URL
-
23-09-2019 - |
题
我想下载一个HTML文件在bash卷曲。像这样的网站: http://www.registrar.ucla.edu/时间表/ detselect.aspx?TERMSEL = 10S&subareasel =物理及idxcrs = 0001B +++
当我手动下载它,它工作正常。然而,当我尝试通过运行crontab我的脚本,输出HTML文件非常小,只是说“对象转移到这里。”有断链。这是否有东西做的稀疏环境crontab命令的运行呢?我发现这个问题:
但我使用bash,不是PHP。什么是等效的命令行选项或变量设置为修复在bash这个问题呢?
(我想与卷曲做到这一点,不wget的)
编辑:好,有时手动下载文件(通过交互shell)的作品,但有时它不会(我仍然得到“对象搬到这里”消息)。因此,它可能不是一个特别是通过计划的环境问题,但卷曲本身。
的cron项:搜索
* * * * * ~/.class/test.sh >> ~/.class/test_out 2>&1
test.sh:
#! /bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/sbin
cd ~/.class
course="physics 1b"
url="http://www.registrar.ucla.edu/schedule/detselect.aspx?termsel=10S<URL>subareasel=PHYSICS<URL>idxcrs=0001B+++"
curl "$url" -sLo "$course".html --max-redirs 5
编辑:问题解决。问题是在URL中的杂散标签。这是因为我是做sed s,"<URL>",\""$url"\", template.txt > test.sh
生成脚本和SED替代&
的所有实例正则表达式<URL>
。固定URL后,卷曲工作正常。
解决方案
您想-L
或--location
选项,这是继300个系列重定向。 --maxredirs [n]
将限制卷曲n
重定向。
其奇怪的是,从一个交互式壳这个作品。你取相同的网址是什么?你总是可以尝试在你的cron项采购环境脚本:
* * * * * . /home/you/.bashrc ; curl -L --maxredirs 5 ...
修改强>的示例网址超过了一个在脚本中有所不同。 $url
在脚本中有一个附加的对<URL>
标签。与&
更换他们,GET
请求常规参数分隔符,为我工作。
其他提示
没有看到你的脚本很难猜测到底是怎么回事,但很可能是它,你猜测是一个环境问题。
有一件事情,经常帮助是指定在脚本的完整路径的可执行文件和文件。
如果你显示你的脚本和crontab条目,我们可以有更多的帮助。