作为cron作业运行时,lynx -dump的输出不同

吉勒

几年来,我一直在“抓取”使用lynx -dump包含非拉丁字符的网页中的内容。我将页面内容保存到文件中,然后通过sed代理进行修改,然后将其发送到电子邮件正文中,所有这些都在我创建的脚本中进行。但是我发现,在将发行版(Ubuntu切换为Void)后,我的脚本无法按预期工作。我已经确定了故障点,如下所示。

当我从命令行运行脚本的第一部分(包含lynx -dump URL内容的部分和文件名)时,所有部分均按预期工作。该文件显示并包含我期望的非拉丁字符。但是,当我尝试通过指定与cron作业相同的命令来使过程自动化时,结果会有所不同。确实出现了预期的文件,但是我没有包含预期的非拉丁字符,而是得到的是使用拉丁字符音译的相同文本,而不是我想要的。我的脚本中执行的操作失败了,因为它取决于非拉丁字符的存在。

那么,为什么这些奇怪的结果取决于我是否从命令行而不是在cron作业中发出lynx命令呢?也许该网站正在进行某种检测,并且在一种情况下提供音译页面,而在另一种情况下则不提供音译页面?还是天猫座本身会将非拉丁字符音译成拉丁字符?输入将不胜感激。

佐藤桂(SatōKatsura)

lynx使用当前语言环境来确定可用于显示页面的字符集。cron但是,可能无法提供此信息,因此您需要执行以下操作:

lynx -display_charset=UTF-8 -dump http://example.com/some/page.html

(当然,如果与UTF-8不同,请使用系统上的字符集)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Rscript和rstan作为cron作业运行时的行为不同

C ++不同运行时的不同输出

从Cron运行时,Python中的Popen返回不同的输出(与命令行)

python matplotlib作为cron作业运行时QxcbConnection错误

相同的程序在调试和作为脚本运行时得到不同的输出

在cron下运行时,mount和umount的行为不同

GDB在运行时输出不同的值

Bash脚本在doubleclick与在终端中运行时的输出不同

Python:程序每次运行时输出不同的值

每当cron作业无法运行时

运行时执行输出

作为cron作业运行时,导入paramiko和mysql.connector包不起作用

当Django管理命令在Dotcloud中作为cron作业运行时,登录失败

由cron运行时,top的输出被截断为80列

IP与cron一起运行时不起作用/不产生输出

从cron运行时,Perl脚本不会将STDOUT输出到文件

在cron的shell脚本中运行时,为什么curl不产生输出?

从cron运行时,为什么此脚本没有输出到文本文件?

仅当cron作业尚未运行时才运行

为什么 gdalinfo --version 在终端上运行时与通过 python 运行时显示不同的输出?

当作为 WebStorm 的外部工具运行时,Yeoman 会导致模糊的双打印输出

sed 命令在作为 System.Diagnostics.Process 运行时给出错误的输出

从Java应用程序将jdb作为进程运行时,输出不完整

将sudo python和python作为SU运行时使用两个不同的版本

在libGDX中作为动画运行时,不同大小的纹理区域会反弹

每次运行的输出不同?

使用此关键字时,为什么在调试和运行时输出不同的结果?

从命令行或system()运行时,不同的$ _SERVER输出

使用npm run-script运行时,ESLint产生不同的输出